您的位置:首页 > 其它

HDOJ 2072 单词数

2016-03-17 20:29 429 查看
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);

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: