zoukankan      html  css  js  c++  java
  • 算法提高:不同单词个数统计

    问题描述
      编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。
      说明:(1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子;(2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;(3)不用考虑单词的大小写,假设输入的都是小写字符;(4)句子长度不超过100个字符。
      输入格式:输入只有一行,即一个英文句子。
      输出格式:输出只有一行,是一个整数,表示句子中不同单词的个数。
    输入输出样例
    样例输入
    one little two little three little boys
    样例输出
    5
    思路:一点不难,就是 用一个小数字记录每个单词,然后再进行比较这个单词是否出现过,所以c语言中的字符串操作函数就可以排上用场了。
    #include<stdio.h>
    #include<stdlib.h>
    
    int main(void)
    {
        char s[100][30];
        char a[100];
        int i;
        char temp[30];
        int j = 0,cnt=0;
        int n;
    
        gets(a);
        for (i = 0; a[i]; i++)
        {
            if (a[i] != ' ')
            {
                temp[j++] = a[i];
            }
    
            if (a[i] != ' ' && (a[i + 1] == ' ' || a[i + 1] == ''))
            {
                temp[j] = '';
                j = 0;
    
                if (cnt == 0) //如果是第一个单词
                {
                    strcpy(s[cnt++], temp);
                }
                else
                {
                    for (n = 0; n < cnt; n++)
                    {
                        if (strcmp(s[n], temp) == 0)
                            break;
                    }
    
                    if (n == cnt) //说明单词没有重复单词
                        strcpy(s[cnt++], temp);
                }
            }
    
        }
    
        printf("%d", cnt);
        return 0;
    }
  • 相关阅读:
    python format() 函数
    -bash: fork: Cannot allocate memory 问题的处理
    阿里云telnet 3306端口失败
    npm install报错 npm ERR! enoent ENOENT: no such file or directory
    springboot启动后总是自己shutdown
    thymeleaf给bootstrap自定义变量赋值
    java通过反射拷贝两个对象的同名同类型变量
    使用awk按照行数切割文件
    Iterable接口
    mac brew update 报错
  • 原文地址:https://www.cnblogs.com/ZhengLijie/p/12518497.html
Copyright © 2011-2022 走看看