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 每 ...
随机推荐
- K2认证考试,为竞争力加分
思科Cisco认证.ADOBE认证.微软认证.印度AIIT认证.华为认证.IBM认证等……在各种“证”满天飞的时候,如何独具慧眼选择最有含金量的证书? 八成 的人力资源主管会检查求职者的认证情况.(C ...
- initWithFrame 和 initWithCoder
当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self ...
- JVM-对象
1.对象的创建 当虚拟机遇到一条new指令时,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载.解析和初始化.如果没有,那必须先执行相应的类加 ...
- UIView 翻转动画
[_mapView removeFromSuperview]; [self addSubview:_tableView]; //应将self.view设置为翻转对象 [UIView transitio ...
- php中常用的运算符
运算符 运算符是告诉PHP做相关运算的标识符号. PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. 1.变量名记得加“$” 符: 2. ...
- ulink 固件更新问题
1前言 ulink版本升级.. 当使用keil4.7.4版本时,ulink固件库更新了. 2官方资料解释: Boot Mode Utility Home » Appendix » Utilities ...
- 生成Apk遇到的问题
conversion to dalvik format failed with error 1 android proguard keep Parameterized class
- 12-27cell常用的属性
1.创建cell // 创建一个cell并且设置cell的风格 UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UI ...
- (spring-第16回【AOP基础篇】)基本概念
AOP(Aspect Oriented Programing),面向切面方程.介绍具体定义前,先看一个例子: package com.baobaotao.concept; public class F ...
- JS - The react framework
这几天因为赶时间 , 所以理解上可能有许多的误差 , 如果你不幸点进来了 , 请不要看我的代码 , 这几天我会重新修改 , 然后把错误的不足的 全部修正一下 . /hwr/src/index.js i ...