HDOJ 2072 单词数

来源:互联网 发布:kernel task 上传数据 编辑:程序博客网 时间:2024/06/01 21:00

Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。

Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

Sample Input
you are my friend
#

Sample Output
4

我的思路是先按照空格来分配单词。
用String数组。
最后来比较有多少个相等的单词。
相等就减一。
我用了一个boolean型的数组来判断当前单词是否已经被比较了。

import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        while(sc.hasNext()){            String str = sc.nextLine();            if(str.charAt(0)=='#'){                return ;            }            String[] strs = new String[str.length()];            for(int i=0;i<strs.length;i++){                strs[i] = "";            }            int count =0;            for(int i=0;i<str.length();i++){                if(str.charAt(i)!=' '){                    //System.out.println("--- "+str.charAt(i));                    strs[count]=strs[count]+str.charAt(i);                }else{                    count++;                }            }//          for(int i=0;i<count;i++){//              System.out.println(strs[i]);//          }            int number =strs.length-1;            boolean iscp[] = new boolean[strs.length];            for(int i=0;i<iscp.length;i++){                iscp[i]=false;            }            for(int i=0;i<strs.length-1;i++){                for(int j=i+1;j<strs.length;j++){                    if(strs[i].equals(strs[j])&&!iscp[j]){                        number--;                        iscp[j]=true;                    }                }            }            System.out.println(number);        }    }}
0 0
原创粉丝点击