3R - 单词数
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend
#
Sample Output
4 // 不是统计没有重复的单词的总数
#include<stdio.h>
#include<string.h>
int main()
{
char text[], word[], *p, *q;
int c, len, j,k, flag;
while(gets(text), text[]!='#')
{
len=strlen(text);
for(int i=;i<len;i++)
if(text[i]==' ')
text[i]='\0';
c=;
for(p=text;p<len+text;p+=k+)
{
k=strlen(p); strcpy(word,p); flag=;
for(q=p+k+;q<len+text;q+=j+)
{
j=strlen(q);
if(strcmp(word,q)==)
{ flag=; break; }
}
if(flag) c++;
}
printf("%d\n", c);
}
return ;
}
WA
// 在文章中选定一个单词,在其后遍历. 若遇到相同的单词就删除
#include<stdio.h>
#include<string.h> void del_word_from_sentence(char *p, int len)
{
int l=strlen(p);
for(int i=;i<len-l;i++)
p[i]=p[l++i];
} int main()
{
char text[], word[], *p, *q;
int c, len, j,k, flag;
while(gets(text), text[]!='#')
{
len=strlen(text);
for(int i=;i<len;i++)
if(text[i]==' ')
text[i]='\0';
c=;
for(p=text;p<len+text;p+=k+)
{
k=strlen(p); strcpy(word,p); flag=; c++;
for(q=p+k+;q<len+text;q+=j+)
{
j=strlen(q);
if(strcmp(word,q)==)
{ flag++; del_word_from_sentence(q,text+len-q); }
}
if(flag) len-=flag*(k+);
}
printf("%d\n", c);
}
return ;
}
WA*2
// 每删掉一个单词就马上修改文章长度. 还是WA。。。
#include<stdio.h>
#include<string.h> void del_word_from_sentence(char *p, int len)
{
int l=strlen(p);
for(int i=;i<len-l;i++)
p[i]=p[l++i];
} int main()
{
char text[], word[], *p, *q;
int c, len, j,k, flag;
while(gets(text), text[]!='#')
{
len=strlen(text);
for(int i=;i<len;i++)
if(text[i]==' ')
text[i]='\0';
c=;
for(p=text;p<len+text;p+=k+)
{
k=strlen(p); strcpy(word,p); c++;
for(q=p+k+;q<len+text;q+=j+)
{
j=strlen(q); flag=;
if(strcmp(word,q)==)
{ flag=; del_word_from_sentence(q,text+len-q); }
if(flag) len-=k+;
} }
printf("%d\n", c);
}
return ;
}
WA*3
// 很大的数组不应该作为局部变量(有些OJ会限制局部数组的大小),做成全局变量不容易错
// 没有考虑连续空格的情况如:aa(空格)(空格)bbb
// 其他注意项见代码
#include<stdio.h>
#include<string.h>
char text[], word[], *p, *q; void del_word_from_sentence(char *p, int len)
{
int l=strlen(p);
for(int i=;i<len-l;i++)
p[i]=p[l++i];
} int main()
{
int c, len, j,k, flag;
while(gets(text), text[]!='#')
{
len=strlen(text);
for(int i=;i<len;i++)
if(text[i]==' ')
text[i]='\0';
c=;
for(p=text;p<len+text;p+=k+)
{
k=strlen(p);
if(k==) continue;
strcpy(word,p); c++;
for(q=p+k+;q<len+text;q+=j+)
{
j=strlen(q);
if(j==) continue;
flag=;
if(strcmp(word,q)==)
{ flag=; del_word_from_sentence(q,text+len-q); }
if(flag)
{ len-=k+; j=-; } // 删除一个单词后q应不变,为凑q+=0,令j=-1.
}
}
printf("%d\n", c);
}
return ;
}
AC*2
// 详见代码
#include<iostream> // cin->stdin, cout->stdout, endl->os.put('\n')&os.flush()
#include<string> // string, getline()->gets()
#include<set> // set
#include<sstream> // istringstream
using namespace std;
int main()
{
string text, w;
while(getline(cin,text), text!="#")
{
set<string> word;
istringstream stream(text);
while(stream>>w) // Extends the container by inserting new elements,
word.insert(w); // effectively increasing the container size by the number of elements inserted.
cout<<word.size()<<endl; // Returns the number of elements in the set container.
}
return ;
}
AC
3R - 单词数的更多相关文章
- 统计单词数(WordCount)
1.首先新建两个文件夹: 往文件夹添加内容: 2.启动hadoop-查看是否启动成功. 3.先对nameNode进行初始化. 4.查看hadoop下面有哪些文件. 5.在hadoop目录下创建inpu ...
- HDU 2072 单词数
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2072 普通解法: /* HDU 2072 单词数 --- 字符串处理 */ #include < ...
- zzuli oj 1178 单词数
Description 统计一篇文章里不同单词的总数. Input 有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束. Output 每 ...
- 翻译器DIY它———算在英文文本中的单词数,字符和行数
咳咳.这部分应该是序列化编译器DIY的,然而,在这样做DIY第一次使用前flex 为了练练手,对于后者的理解是有帮助. 在word 我经常看到一个字计数功能,因此,它是如何实现,当然,首先想到的是要经 ...
- 使用jdk8 stream 统计单词数
在我的SpringBoot2.0不容错过的新特性 WebFlux响应式编程里面,有同学问如何使用stream统计单词数.这是个好例子,也很典型,在这里补上. 下面的例子实现了从一个文本文件读取(英文) ...
- (set stringstream)单词数 hdu2072
单词数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 作业:WordCount--实现字符数,单词数,行数的统计
1. Gitee 地址 https://gitee.com/fyxiaobai/wordcount 2. PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning ...
- WordCount C语言实现求文本的字符数,单词数,行数
1.码云地址: https://gitee.com/miaomiaobobo/WordCount 2.psp表格 PSP2.1表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) P ...
- 题解报告:hdu 2072 单词数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 题目: Problem Description lily的好朋友xiaoou333最近很空,他想 ...
随机推荐
- 阿里云轻量应用服务器 怎么控制怎么上传文件怎么安装JDK和Tomcat怎么完成JavaWeb的部署
你是否遇到过这些问题,自己的javaweb项目本地运行一切正常,但是一旦转移到阿里服务器之类的.就出现以下问题. 1 jsp无法解析java类 2 Only a type can be importe ...
- Prometheus介绍
Prometheus的主要特点 Prometheus 属于一站式监控告警平台,依赖少,功能齐全.Prometheus 支持对云的或容器的监控,其他系统主要对主机监控.Prometheus 数据查询语句 ...
- 二叉树遍历(flist)(已知中序和按层遍历,求先序 )
问题 F: 二叉树遍历(flist) 时间限制: 1 Sec 内存限制: 128 MB提交: 11 解决: 9[提交][状态][讨论版][命题人:quanxing][Edit] [TestData ...
- 减肥标准BMI指数
原文: https://baike.baidu.com/item/BMI%E6%8C%87%E6%95%B0/4477882?fromtitle=%E4%BD%93%E9%87%8D%E6%8C%87 ...
- Python3网络爬虫(四):使用User Agent和代理IP隐藏身份《转》
https://blog.csdn.net/c406495762/article/details/60137956 运行平台:Windows Python版本:Python3.x IDE:Sublim ...
- 学习 MeteoInfo二次开发教程(一)
来自气象家园:http://bbs.06climate.com/forum.php?mod=viewthread&tid=6631 按照教程,没有太大问题,有些是对c#操作不熟悉导致. 1.添 ...
- vue仿淘宝结账订单
<template> <div class="container"> <div class="checkout-title"& ...
- 系统变量之System.getenv()和System.getProperty()
Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多于系统相关,getProperty方法返回的变量大多与ja ...
- 浅谈Cookie与Session技术
一.什么是状态管理 将客户端与服务器之间多次交互当做一个整体来看,并且将多次交互所涉及的数据(状态)保存下来. 会话:当用户打开浏览器,访问多个WEB资源,然后关闭浏览器的过程,称之为一个会话,选 ...
- IntelliJ IDEA 常用设置
1.idea每次打开项目的设置 2.设置编译器的快捷键 File->Keymap 在列表里面选择快捷键的名称 如果想使用跟Eclipse一样的快捷键,选中Eclipse copy即可 3.滚 ...