HDU 2072 单词数
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2072
普通解法:
/* HDU 2072 单词数 --- 字符串处理 */
#include <cstdio> //C语言改成stdio.h即可
#include <cstring> //C语言改成string.h即可 const int maxn = ; int main()
{
char *head1, *head2;
char a[maxn];
char b[maxn][maxn];
int i, k, len, cnt1, cnt2; while (gets(a)){
//遇到字符串"#'则结束
if ('#' == a[]){
break;
} //处理末尾的连续空格
len = strlen(a);
for (i = len - ; i >= ; --i){
if (' ' == a[i]){
a[i] = ; //末尾有空格则用空字符替换
}
else
break;
}//for(i) //处理开头的连续空格
len = strlen(a);
if (len == ){ //全是空格的情况特殊处理
printf("0\n");
continue;
}
for (i = ; i < len; ++i){
if (' ' == a[i]){
a[i] = ;
}
else{
//遇到非空格
head1 = a + i; //记录新的开头
break;
}
}//for(i) len = strlen(head1);
//在字符串末尾补上一个空格以便处理最后一个单词
head1[len] = ' ';
head1[len + ] = ; head2 = head1;
cnt1 = ; //cnt1统计单词数(可能重复)
for (i = ; i <= len; ++i){
if (' ' == head1[i]){
head1[i] = ;
//当前点是空格而后一个点不是空格 则后一个点即为新的单词起点
if (' ' != head1[i + ]){
//记录上一个单词并更新单词数
strcpy(b[cnt1], head2);
++cnt1;
head2 = head1 + i + ; //更新新的单词起点
}
}
}//for(i) //处理相同的单词数
cnt2 = cnt1;
for (i = ; i < cnt1; ++i){
if (b[i][] != '#'){
for (k = i + ; k < cnt1; ++k){
if (b[k][] != '#' && strcmp(b[i], b[k]) == ){
--cnt2;
b[k][] = '#'; //已经判断是否重复则不再判断
}
}//for(k)
b[i][] = '#'; //到此 和b[i]相同的单词第一个字符已经全部设置成'#'
}//if
}//for(i)
printf("%d\n", cnt2);
}//while(gets) return ;
}
STL+stringstream解法:
/* HDU 2072 单词数 --- stringstream+STL */
#include <cstdio>
#include <iostream>
#include <sstream>
#include <string>
#include <set>
using namespace std; set<string> k; int main()
{
string s;
while (getline(cin, s) && s != "#"){
k.clear();
stringstream str(s);
string tmp;
while (str >> tmp){
k.insert(tmp);
}
cout << k.size() << endl;
}//while(get)
}
HDU 2072 单词数的更多相关文章
- 题解报告:hdu 2072 单词数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 题目: Problem Description lily的好朋友xiaoou333最近很空,他想 ...
- 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 2072 单词数(字符串)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 题意 每行输入由小写字母和空格组成,统计每行中不同的单词数. 题解 题解一 比较简洁的解法,读入 ...
- 统计单词数(WordCount)
1.首先新建两个文件夹: 往文件夹添加内容: 2.启动hadoop-查看是否启动成功. 3.先对nameNode进行初始化. 4.查看hadoop下面有哪些文件. 5.在hadoop目录下创建inpu ...
- zzuli oj 1178 单词数
Description 统计一篇文章里不同单词的总数. Input 有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束. Output 每 ...
随机推荐
- Microsoft Mole原理及常见问题整理
Moles与Moq(Rhino.Mocks)比较 作用范围 Moq与Rhino.Mocks这类的Mock是对Interface或AbstractClass做Mock, 而Moles是Mock整个 ...
- Oracle中varchar,varchar2,nvarchar,nvarchar2的区别
--varchar,varchar2 联系:1.varchar/varchar2用于存储可变长度的字符串比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节 ...
- Oracle Database 11g express edition
commands : show sys connect sys as sysdba or connect system as sysdba logout or disc clear screen or ...
- [转] Linux内核代码风格 CodingStyle [CH]
from:http://blog.csdn.net/jiang_dlut/article/details/8163731 中文版维护者: 张乐 Zhang Le <r0bertz@gentoo. ...
- GPIO的8种工作模式
1.浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1 2.带上拉输入GPIO_IPU——IO内部上拉电阻输入 3.带下拉输入GPIO_IPD——IO内部下拉电阻输入 4 ...
- MyQQ 前言
从接触IOS以来也将近8个月了,学习了不少知识. 看了一系列的书籍如: <objective-c 开发入门>--语法介绍,学习一门语言是开发的基础.所以这是我大致对语法语句学习的锻炼地方, ...
- 操作系统:cpu调度 6-25
1. 进程选择 1小时和1分钟? 进程优先1分钟,再执行1小时. 时间短的进程先执行,执行顺序也有关. 2. 遇到io操作,执行的进程先让出cpu,切换其他进程. 3.进程先来先服务,进程调度策略: ...
- tableviewcell的取消选中,高亮
1.取消多余cell的分割线 UIView *view = [UIView new]; view.backgroundColor = [UIColor clearColor]; [tableView ...
- Tab切换栏
// Tab切换栏 function setTab(name, m, n) { for (var i = 1; i <= n; i++) { var menu = document.getEle ...
- Mysql5.0以下 手工注入
order by 20 www. .com/product/introduction.php?id=-65 UNION SELECT user(),2 www. .com/product/introd ...