HDU 2072 *单词数

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
 
题解:函数 A  用来判断两个单词是否相等,相等 return 0 ,不等 return 1;利用 for 循环把字符串中的空着找出来,两个空格之间的部分就是一个单词,把找出的单词存在 s 中,调用 A 函数 ,找出一句话中不同单词的数量
 
代码:
#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e5+10;
char s[100][100];
char a[maxn];

int A(int x,int y)//判断字符串是否相等 相等返回 0 ,不等返回 1
{
    int cnt=0;
    int len1=strlen(s[x]);
    int len2=strlen(s[y]);
    if(len1==len2)
    {
        for(int i=0; i<len1; i++)
        {
            if(s[x][i]!=s[y][i])
                return 1;
        }
        return 0;
    }
    return 1;
}

int main()
{
    while(gets(a))//i 行
    {
        int ans=0;
        int n=0;
        if(a[0]=='#')
            break;
        int len=strlen(a);
        a[len]=' ';
        len++;
        a[len]='\0';
        for(int i=0; i<len; i++)
        {
            if(a[i]!=' ')
                for(int j=i; j<len; j++)
                {
                    if(a[j]!=' ')
                        continue;
                    else
                    {
                        n++;
                        for(int zzt=i; zzt<j; zzt++)
                        {
                            s[n][zzt-i]=a[zzt];
                        }
                        s[n][j-i]='\0';
                        i=j;
                        break;
                    }
                }
        }
        //cout<<n<<endl;
        //for(int i=1;i<=n;i++)
        //cout<<s[i]<<" "<<endl;
        for(int i=1; i<=n; i++)
        {
            int add=1;
            for(int j=i-1; j>0; j--)
            {
                add*=A(i,j);
            }
            if(add==1)
                ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}

  

 

posted @ 2018-06-30 19:11  丧心病狂工科女  阅读(136)  评论(0编辑  收藏  举报