首页 > 其他 > 详细

[HDU2072]单词数<字符串>

时间:2020-02-04 23:15:54      阅读:86      评论:0      收藏:0      [点我收藏+]

 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072

Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
 
Sample Input
 
you are my friend
#
 
Sample Output
 
4
思路:
一道很简单的字符串裸题,字符串的简单应用
数据范围挺小,所以直接暴力模拟就可以了
会用到函数
strcmp 比较两个字符串 相同返回0
strcpy 拷贝字符串
 
技术分享图片
#include<bits/stdc++.h>
#define ll long long
#define inf 0x3fffffff
using namespace std;

int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<0||ch>9){if(ch==-)f=-1;ch=getchar();}
    while(ch>=0&&ch<=9){x=x*10+ch-0;ch=getchar();}
    return x*f;
}

void fre(){
     freopen("     .in","r",stdin);
     freopen("     .out","w",stdout);
}

string pas;
char all[1005][105],now[105];
int len,num;

int main(){
    while(1){
        getline(cin,pas);
        if(pas[0]==#)return 0;
        len=pas.size();
        pas+= ;
        int poi=0,tot=0,can=0;
        for(int i=0;i<=len;i++){
            if(pas[i]!= ){
                int l=0;
                poi=i;now[l++]=pas[poi];
                for(i=i+1;i<=len;i++){
                    if(pas[i]== )break;
                    now[l++]=pas[i];
                }
                now[l]=\0;
                for(int j=1;j<=tot;j++)
                    if(strcmp(all[j],now)==0){
                        can=1;break;
                    }
                if(can==0){
                    strcpy(all[++tot],now);
                }can=0;
            }
        /*    if(pas[i]==‘ ‘){
                int l=0;
                for(int j=poi;j<i;j++){
                    now[l++]=pas[j];
                }poi=i+1;
                now[l]=‘\0‘;
                for(int j=1;j<=tot;j++)
                    if(strcmp(all[j],now)==0){
                        can=1;break;
                    }
                if(can==0){
                    strcpy(all[++tot],now);
                }can=0;
            }*/
        }
            

        cout<<tot<<endl;
    }
    return 0;
}
View Code

之前一直wa

后来换了一种找单词的方式就没问题了

就是注释部分出错了

应该是注释部分不能很好处理多空格情况,会使tot变大

(下次一定改下次一定改)

 
 

[HDU2072]单词数<字符串>

原文:https://www.cnblogs.com/Danzel-Aria233/p/12261702.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!