hdu1107用java方法写
时间: 2023-08-14 19:04:31 浏览: 139
下面是使用 Java 语言实现的 hdu1107 题目的代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
List<String> words = new ArrayList<>();
for (int i = 0; i < n; i++) {
words.add(sc.next());
}
Collections.sort(words);
int count = 0;
for (int i = 0; i < n; i++) {
String word = words.get(i);
boolean isPrefix = false;
for (int j = i + 1; j < n; j++) {
String nextWord = words.get(j);
if (nextWord.startsWith(word)) {
isPrefix = true;
break;
}
}
if (!isPrefix) {
count += word.length() + 1;
}
}
System.out.println(count);
}
}
}
```
代码思路:
1. 读入单词总数 n。
2. 读入 n 个单词,使用 List 存储。
3. 对 List 中的单词进行排序。
4. 遍历 List 中的单词,对于每个单词,判断它是否为其他单词的前缀,如果不是,则将它的长度加上 1 累加到计数器中。
5. 输出计数器中的值。
注意事项:
1. Java 中字符串的比较应该使用 equals 方法,而不是 == 运算符。
2. 对于字符串的前缀判断,可以使用 startsWith 方法。
阅读全文