hdu2072-单词数 字典树、STL
来源:互联网 发布:双三次插值算法 编辑:程序博客网 时间:2024/06/07 07:24
单词数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 54748 Accepted Submission(s): 13623
Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend#
Sample Output
4
Author
Lily
Source
浙江工业大学网络选拔赛
解题思路:(1)我们可以对单词进行字典树插入存储,如果没有在树中就插入, 否则就将单词数量加1。
(2)我们可以利用STL中的set容器,将字符串存入,统计不同字符串个数即可。
ac代码:
#include<iostream>#include<string>#include<set>#include<sstream>using namespace std;set<string> temp;int main(){string row,input;while( getline(cin,row) && row!="#" ){temp.clear();stringstream str(row);while(str>>input)temp.insert(input);cout<<temp.size()<<endl;}return 0;}
#include <cstdio> #include <iostream>#include <cstring>using namespace std;#define maxn 100000struct node{int count;node *childs[26];node(){count=0;int i;for(i=0;i<26;i++)childs[i]=NULL;}};node *root=new node;node *current,*newnode;void insert(char *str)//插入 {int i,m; current=root; for(int i=0;i<strlen(str);i++) { m=str[i]-'a'; if(current->childs[m]==NULL) current->childs[m]=new node; current=current->childs[m]; current->count++; } }int search(char *str)//查找 {int i,m; current=root;for(i=0;i<strlen(str);i++){ m=str[i]-'a';if(current->childs[m]==NULL)return 0;current=current->childs[m];}return current->count;}int main(){char str[maxn];int sum;while(~scanf("%s",str)){sum = 0; if(str[0]=='#') break; if(search(str)==0) { sum++; insert(str); }}printf("%d\n",sum);return 0;}
阅读全文
0 0
- hdu2072-单词数 字典树、STL
- 单词数(hdu2072字典树)
- hdu2072单词数 字典树做法
- hdu2072 单词数(字典树)
- HDU2072 单词数 【STL】+【strtok】
- hdu2072(不同单词数)
- 单词数,hdu2072
- HDU2072:单词数
- HDU2072:单词数
- HDU2072 单词数
- HDU2072 单词数
- hdu2072 单词数
- hdu2072 单词数
- HDU2072 单词数
- 【字符串】HDU2072单词数
- HDU2072 单词数
- hdu2072 单词数
- hdu2072 单词数
- iOS 9下Universal Link(通用链接)开发
- 存储过程跨用户执行execute immediate权限不足
- 实现Imageview两个圆角的效果
- 初识java后台
- poj 1321 棋盘问题(Dfs)
- hdu2072-单词数 字典树、STL
- L2-011. 玩转二叉树
- 长连接转短链接
- 组合数
- Android几种进程
- 剑指offer--反转链表
- POJ Remmarguts' Date A*搜索+spfa
- 如何解决WebBrowser.DocumentCompleted事件的多次调用
- JS高级程序设计——BOM