FZU 2027 单词问题 map标记字符串典型问题
题目链接:单词问题
找一个字符串里的所有单词,重复的只输出一次。关于map函数key值是字符串的问题一直比较含糊...
挣扎了一番,大概是,map的key值是char型数组的时候,标记的是地址,于是有map[char *, int]mp;然而..这就并没有什么卵用了吧..
然后...如果是string的话...怎么能让map认识这个字符串呢..string.resize(num);的作用应该就是在字符串末尾加上了结束符...然后...每次增加一个字符的时候..如果已经遇上了结束符...是不可以的...程序就崩溃了....这个时候应该结束符位置之后的地址都属于超出数组范围了...于是字符数组越界..这就跟地址分配有关了...
该题直接暴力先把所有的字符串存起来...每次输出的时候依次查找是不是前面是不是有过也是可以得...(就是有点蠢...)
神奇的resize函数...是时候学一发C++语法了..
附代码:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <map>
using namespace std; string str;
string temp;
map<string, int>mp; int main() {
while(cin >> str) {
int len = str.length();
temp = "";
temp.resize(200);
int cnt = 0;
mp.clear(); for (int i=0; i<len; ++i) {
//if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
if (isalpha(str[i])) { // 和上一行等价...就是体验一下有钱人的生活...
temp[cnt++] = str[i];
}
else if (cnt != 0) {
temp.resize(cnt); // 没有该行 map无法正确标记该字符串
if (mp[temp] == 0) {
cout << temp << endl;
mp[temp]++;
} cnt = 0;
//temp = "";
temp.resize(200); // 没有该行会崩溃
}
if (i == len-1 && cnt != 0) {
temp.resize(cnt);
if (mp[temp] == 0) {
cout << temp << endl;
}
}
}
}
return 0;
}
FZU 2027 单词问题 map标记字符串典型问题的更多相关文章
- 统计单词频率--map
问题描述: 输入一个单词列表,每行一个单词,统计单词出现的频率 思路: 主要是使用c++中的map容器.map实质上是一个二叉查找树,可以做到插入.删除.查询,平均查询时间在O(logn).n为map ...
- POJ 3320 尺取法,Hash,map标记
1.POJ 3320 2.链接:http://poj.org/problem?id=3320 3.总结:尺取法,Hash,map标记 看书复习,p页书,一页有一个知识点,连续看求最少多少页看完所有知识 ...
- [51NOD1095] Anigram单词(map)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1095 字典的单词在map中排序和不排序各存1次,查的时候相减. ...
- Northwestern European Regional Contest 2016 NWERC ,F题Free Weights(优先队列+Map标记+模拟)
传送门: Vjudge:https://vjudge.net/problem/Gym-101170F CF: http://codeforces.com/gym/101170 The city of ...
- map json 字符串 对象之间的相互转化
1.对象与字符串之间的互转 将对象转换成为字符串 String str = JSON.toJSONString(infoDo); 字符串转换成为对象 InfoDo infoDo = JSON.pars ...
- HUD-2112 HDU Today(最短路map标记)
题目链接:HUD-2112 HDU Today 思路: 1.最短路spfa模板. 2.map标记建图. 3.考虑距离为0或者-1的情况. 总结:下次map记得清空orz. AC代码: #include ...
- python用reduce和map把字符串转为数字的方法
python用reduce和map把字符串转为数字的方法 最近在复习高阶函数的时候,有一道题想了半天解不出来.于是上午搜索资料,看了下别人的解法,发现学习编程,思维真的很重要.下面这篇文章就来给大家介 ...
- HDU2072 tri树/map/set/字符串hash
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题 水题 就是用来试试字符串算法的 tri树 ...
- 499 单词计数 (Map Reduce版本)
原题网址:https://www.lintcode.com/problem/word-count-map-reduce/description 描述 使用 map reduce 来计算单词频率http ...
随机推荐
- Eclipse使用Jetty(转)
eclipse 与 jetty 结合的最佳实践 http://www.cnblogs.com/mignet/archive/2011/12/04/eclipse_jetty_perfect_integ ...
- OC面向对象及继承
1. 面向对象它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中.面向对象的编程语言使得复杂的工作条理清晰.编写容易.说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言. ...
- 利用ajax.dll类库文件实现无刷新
使用这种方法前需要配置相应的环境 1.引用ajax.dll文件 2.在web.config添加如下: <httpHandlers> <add path="ajax/*. ...
- Python中的__new__()方法的使用
__new__() 函数只能用于从object继承的新式类. 先看下object类中对__new__()方法的定义: class object: @staticmethod # known cas ...
- (七)C语言中的void 和void 指针类型
许多初学者对C中的void 和void 的指针类型不是很了解.因此常常在使用上出现一些错误,本文将告诉大家关于void 和void 指针类型的使用方法及技巧. 1.首先,我们来说说void 的含义: ...
- 机器学习如何选择模型 & 机器学习与数据挖掘区别 & 深度学习科普
今天看到这篇文章里面提到如何选择模型,觉得非常好,单独写在这里. 更多的机器学习实战可以看这篇文章:http://www.cnblogs.com/charlesblc/p/6159187.html 另 ...
- 【CDN】国外访问国内服务器网站-响应慢-CDN
建议采用CDN海外加速方式: (1)CDN即内容分发网络(Content Delievery Network),它可以认为是建立在现有IP网络基础结构之上的一种增值网络.CDN技术将多点负载均衡.镜像 ...
- 激活MyEclipse 6.5方法-通过一段Java程序生成激活码
在MyEclipse中新建一个Java类,名为MyEclipseKeyGen,将下面的Java代码拷贝到MyEclipseKeyGen类中,先修改变量subscriber的值,然后运行程序即可获得Su ...
- Http简析
HTTP协议 属于应用层的面向对象的协议 HTTP协议的主要特点 支持C/S(客户/服务器)模式. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POST ...
- chrome web开发工具
顾名思义Chrome开发工具就是一个工具,它允许Web开发人员可以通过浏览器应用程序干预和操作Web页面,也可以通过这个工具调试和测试Web页面或Web应用程序.有了这个工具,你可以做很多有趣的事情: ...