HDOJ2072 单词数

时间:2023-02-20 10:58:02


单词数


Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 56492    Accepted Submission(s): 14116


Problem Description


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


 



Input


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


 



Output


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


 



Sample Input


you are my friend #


 



Sample Output


4


 


给出两种方法,第一种是使用java函数库里的方法,第二种是自己写方法来判断,当然,还是推荐第一种



import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Main{
private static Scanner scanner;

public static void main(String[] args) {
scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String string = scanner.nextLine();
// 防护
string = string.trim();// 去掉前后空格


//并不需要考虑空回车问题,尽管输出0就是了,这里我还真想多了
import java.util.Scanner;
//另一种 (AC)
public class Main{
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.nextLine();
if (str.equals("#")) {
break;
}
String[] strs = str.split(" ");
int count = 0;
for (int i = 0; i < strs.length; i++) {
boolean boo = true;//用来判断这个单词是不是最后一次出现
if (strs[i].equals("")) {
continue;
}
for (int j = i+1; j < strs.length; j++) {
if (strs[i].equals(strs[j])) {
boo = false;
}
}
if (boo) {
count++;
}
}
System.out.println(count);
}
}
}