我用Java编写了一个小程序来查找句子中的重复单词.没有语法错误,没有复杂性错误,但是一旦运行它我就会得到一个奇怪的长错误.
class Find {
public static void main(String args[]) {
String M = "Hello World Hello Hello";
String[] words = M.split(" ");
for (int i = 0; i < M.length(); i++) {
for (int j = 0; j < M.length(); j++) {
if (words[i].equalsIgnoreCase(words[j])) {
System.out.printf("Duplicate Words :" + words[i], words[j]);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行时:
Duplicate Words :HelloDuplicate Words :HelloDuplicate Words :HelloException in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Find.main(Find.java:9)
Run Code Online (Sandbox Code Playgroud)
我做错了什么?请帮忙.
你想迭代受限
words.length
Run Code Online (Sandbox Code Playgroud)
不 M.length()
最好拆分然后再使用HashSet<String> add(String)方法
那将是O(n)你现有的解决方案O(n^2)
| 归档时间: |
|
| 查看次数: |
1318 次 |
| 最近记录: |