【发布时间】:2020-04-24 14:03:24
【问题描述】:
我正在开发一个程序,该程序计算给定输入字符串的所有可能的不同连续子字符串。
这是我的程序:
public int getAllUniqueSubset(String str) {
Set<String> set = new HashSet<String>();
for (int i = 0; i < str.length(); i++) {
for (int j = 0; j < str.length() - i; j++) {
String elem = str.substring(j, j + (i+1));
if (!set.contains(elem)) {
set.add(elem);
}
}
}
return set.size();
}
现在当我在几天前的在线考试中使用它时,它因超时错误而失败,因为输入字符串的长度可能高达 10 次方 5。
在这篇文章中也提出了类似的问题 - finding all distinct substring of a string 我也使用了相同的答案。
解决这个程序的正确方法是什么?
【问题讨论】:
-
为什么投反对票?我可以看到添加 1-2 个示例的好处,但问题很明显