HDU 2072 字符串处理(判重)
来源:互联网 发布:知乎搞笑问题 编辑:程序博客网 时间:2024/05/16 19:21
单词数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 51348 Accepted Submission(s): 12629
Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend#
Sample Output
4
http://acm.hdu.edu.cn/showproblem.php?pid=2072
分析:对字符串进行处理,相同的判重,不同的加入集合,计算集合的大小,就知道一共有多少个不同的字符串了。
这道题的坑爹之处在于空格,前面可能有多个空格,后面可能有多个空格,单词之间可能有多个空格,要对多余的空格进行处理
下面给一些测试用例:
input:
kkkkk
kdfghar kecc
k y o
k
#
output:
1
0
0
2
3
1
#include<iostream>#include<string>#include<map>#include<vector>#include<cstdio>using namespace std;#define maxn 1000#define LOCALchar res[maxn][100];char tot[maxn];char temp[100];int main() {#ifdef LOCALfreopen("ACMinput.txt", "r", stdin);#endifwhile (cin.getline(tot, maxn)) {if (tot[0] == '#') break;int pos = 0;int len = strlen(tot);while (tot[pos] == ' ') pos++;//处理前导空格int j, i = 0;while (pos < len) {sscanf(tot+pos, "%s", temp);for (j = 0; j < i; j++)if (strcmp(res[j], temp) == 0) //对字符串进行判重break;if (j == i) strcpy(res[i++], temp);//不与之前的相同,则可以加入pos += strlen(temp)+1;while (tot[pos] == ' ') pos++;//处理中间的空格}cout << i << endl;}return 0;}
#include<iostream>#include<string>#include<map>#include<vector>#include<set>#include<cstdio>#include<sstream>using namespace std;#define maxn 1000#define LOCALstring tot;string temp;set<string> Set;int main() {#ifdef LOCALfreopen("ACMinput.txt", "r", stdin);#endifwhile (getline(cin, tot) && tot != "#") {Set.clear();stringstream str(tot);while (str >> temp)Set.insert(temp);cout << Set.size() << endl;}return 0;}
0 0
- HDU 2072 字符串处理(判重)
- hdu 4821 字符串hash + map判重
- hdu 2611(dfs判重)
- 面试:字符串:字符串判重
- 面试:字符串:字符串判重
- hdu 2579 余数判重
- 字符串hash判重/trie树判重(poj3007)
- hdu 1664 Different Digits(bfs+余数判重)
- hdu 4277 USACO ORZ(dfs搜索+set判重)
- Android字符串判空处理
- hdu 4821 字符串hash+map判重 String (长春市赛区I题)
- HDU 2102 A计划 (bfs + 判重)
- HDU 1067 HASH判重BFS
- hdu 1067(bfs+hash判重)
- hdu 2610 dfs+判重剪枝
- hdu 2611 dfs+经典判重cut
- hdu 4821 hash+map判重
- HDU 1430 魔板 (双向BFS)/(BFS预处理)+map判重
- Qt Designer 5.6.2无法打开
- Node.js v6.10.1在webStrom里配置less转css步骤
- Android 内存优化实践与总结
- python3.x之爬虫学习
- FastJson 基础教程
- HDU 2072 字符串处理(判重)
- 测量坐标系换算的安卓程序开发
- 为什么w要找s做经纪人?------聊聊软件系统中agent的构思与作用
- Android折线走势图
- 远程访问 MySQL
- 杭电oj--2005
- Spark RDD的缓存 rdd.cache() 和 rdd.persist()
- Ubuntu:128M下运行MySQL
- 2017去哪儿网在线笔试(二)