题解报告:hdu 2072 单词数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072
题目:
#include<bits/stdc++.h>
using namespace std;
int main()
{
set<string>st;//一个保存string的set集合
string s;
char c;
while((c=cin.get())!='#'){//循环读入单词的第一个字符,直到不为'#'为止,控制文章
s.clear();//清除要保存单词的s字符串
while(c!=' '&&c!='\n'){//循环读取字符(为一个单词)
s+=c;
c=cin.get();//获取下一个字符
}
if(s.length())//表示如果此时string中s是有长度,就将s插入到容器中
st.insert(s);
if(c=='\n'){//遇到'\n'的话就是该输出个数和换行了
cout<<st.size()<<endl;//输出容器的大小
st.clear();//清除st容器
}
}
return ;
}
解法二:(C语言写法)
#include<bits/stdc++.h>
using namespace std;
char a[],b[][];//a数组要开大点,b数组用来保存每行的单词
int main()
{
int i,j,k,g,t;
while(gets(a)){
if(strcmp(a,"#")==)break;
memset(b,,sizeof(b));//清空
i=j=k=,g=strlen(a);
while(i<g){//扫描每行的字符串
if(a[i]==' '){
while(a[i]==' '&&a[i]!='\0')i++;//清空0字符
}
else{
while(a[i]!=' '&&a[i]!='\0'){
b[k][j]=a[i];//单个字符赋予二维数组
j++,i++;
}
b[k][j]='\0';//完整的字符串
k++,j=;//下一个单词
}
}
t=k;//表示总共有单词的个数
for(i=;i<k-;i++){//循环比较
for(j=i+;j<k;j++){
if(strcmp(b[i],b[j])==){
t--;//如果有相同的话t就减1
break;//跳出操作相当于删掉下标为i的单词,保留j位置的单词,因为后面还要用到j来与其后面的比较
}
}
}
cout<<t<<endl;//输出单词个数
}
return ;
}
题解报告:hdu 2072 单词数的更多相关文章
- HDU 2072 单词数
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2072 普通解法: /* HDU 2072 单词数 --- 字符串处理 */ #include < ...
- 题解 P1308 【统计单词数】
小金羊发一篇不一样的题解: 这个题解不是讲解法的,是讲算法的... 众所周知,string在中被定义为是类型, 这意味着我们可以将它作为int一样的类型使用. 并且还有神奇的加减法: string s ...
- HDOJ.2072 单词数(map)
单词数 点我挑战题目 点我一起学习STL-MAP 题意分析 给出一行单词,判断这行有不同种的单词多少个,用map可以轻松解决. 代码总览 /* Title:HDOJ.2072 Author:pengw ...
- HDOJ 2072 单词数
Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. ...
- HDU 2072(字符串的流式操作,学习了)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2072 单词数 Time Limit: 1000/1000 MS (Java/Others) Me ...
- 单词数 HDU 2072 字符串输入控制
单词数 HDU 2072 字符串输入控制 题意 lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个 ...
- HDU 2072(单词数)题解
以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] “就是统计一篇文章里不同单词的总数”(已经是一句话了..) [题目分析] 明显需要去重,上set,因为按行分析,又没有EOLN用 ...
- 题解报告:hdu 1398 Square Coins(母函数或dp)
Problem Description People in Silverland use square coins. Not only they have square shapes but also ...
- 题解报告:hdu 2069 Coin Change(暴力orDP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...
随机推荐
- .NET中lock的使用方法及注意事项[转]
标准-->ms官方: http://msdn.microsoft.com/zh-cn/library/c5kehkcz(v=vs.90).aspx A.为什么不要 "lock(this ...
- 李洪强iOS开发之函数式 编程初窥
函数式 编程初窥 最近在学习Erlang和Python.Erlang是完全的函数式编程语言,Python语言是面向对象的语言,但是它的语法引入了大量的函数式编程思想.越研究越觉得函数式的编程思路可 ...
- 在windows cgywinportable上,通过运行linux命令,批量改动文件名。
在windows cgywinportable上.通过运行linux命令.批量改动文件名. 实例:将当前文件夹下的全部文件名称加上.sql find ./ -type f -exec mv {} ' ...
- Ios 项目从头开发 MVVM模式(三)
1.话说,本来想做个聚合查询功能.可是我的重点想研究xmpp聊天功能.所以使用mvvm模式做了全然模式51job主界面的页面. 2.首先给大家看我执行起来的界面. 3.界面非常easy,做这个界面主要 ...
- Codeforces 709E. Centroids 树形DP
题目链接:http://codeforces.com/contest/709/problem/E 题意: 给你一棵树,你可以任删一条边和加一条边,只要使得其仍然是一棵树,输出每个点是否都能成为重心 题 ...
- Hibernate中二级缓存指的是什么?
一.一级缓存.二级缓存的概念解释 (1)一级缓存就是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个 session(一定要同一个se ...
- C# 中串口通信 serialport1.DataReceived 函数无法触发或者出发延时等等问题解决方法
以前这个问题困扰我多天最后查资料一大堆,最后最终攻克了,看到非常多人做C#串口都遇到相同的问题,所以写一篇博文,以便学习交流. 一定要在com实例化的时候设置ReceivedBytesThreshol ...
- 在Orchard CMS Theme 用代码定义布局Widgets 配置
在上篇中主要详细的叙述了代码的编写,这一篇主要讲解配置.可能有人会有疑问,在上一篇的代码里只有对数据的展示部分的编写,并没有提供数据源.这就是Orchard的强大之处,数据源是通过在后台配置的,那有人 ...
- 几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较(转)
几大最短路径算法比较 几个最短路径算法的比较:Floyd 求多源.无负权边(此处错误?应该可以有负权边)的最短路.用矩阵记录图.时效性较差,时间复杂度O(V^3). Floy ...
- linux CANopenSocket 初试
/************************************************************************************** * linux CANo ...