题解报告: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 ...
随机推荐
- Office EXCEL 表格如何设置某个单元格是选择项,如何设置一级下拉菜单
1 比如我要在C这一列都做成下拉菜单,则我选中这一列的第一个单元格,然后点击数据-有效性,然后把允许改成"序列",在来源中输入每一项(用逗号隔开),比如我一共要做四个下拉菜单选项, ...
- 修正iOS从照相机和相册中获取的图片 方向
修正iOS从照相机和相册中获取的图片 方向 修正iOS从照相机和相册中获取的图片 方向 使用系统相机拍照得到的图片的默认方向有时不是ImageOrientationDown,而是ImageOrie ...
- jQuery经典面试题及答案精选
jQuery是一款非常流行的Javascript框架,如果你想要从事Web前端开发这个岗位,那么jQuery是你必须掌握而且能够熟练应用的一门技术.本文整理了一些关于jQuery的经典面试题及答案,分 ...
- Buildroot构建指南--快速上手与实用技巧【转】
本文转载自:http://blog.csdn.net/zhou_chenz/article/details/52335634 Buildroot官方全英文使用手册的链接是https://buildro ...
- 风云流水 jQuery技巧总结 (转)
jQuery技巧总结 (转) 一.简介 1.1.概述 随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery.m ...
- POJ - 3041 Asteroids(最小点覆盖数)
1.有一个n*n的矩阵,在矩阵上有k个行星,用武器射击一次可以消灭一行或者一列的行星,求消灭所有的行星的最少射击次数. 2.最小点覆盖数 = 最大匹配数 主要在于转化:看图: 这样,在建成的二分图中, ...
- NSString字符串截取方法
1.字符串 1> 字符串比较 NSString *a = @“hello”; NSString *b = [NSString stringWithFormat:@hello”]; if (a = ...
- 二:多线程--GCD
一.简单介绍 1.GCD全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”,纯C语言,提供了非常多强大的函数 2.GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方 ...
- ios学习顺序表
- 利用http_load测试Web引擎性能
http_load是基于linux平台的性能测试工具,它体积非常小,仅100KB.它以并行复用的方式运行,可以测试web服务器的吞吐量与负载. 一.获得http_load httpd_load的官方站 ...