字符串Java For循环以显示所有唯一的子字符串
我编写了以下for循环来显示所提供单词的所有子字符串。但是,其中一个要求是单词对一仅显示唯一的子字符串。如果“mom”给了下面的代码,它会将长度为1的子字符串显示为“m”、“o”和“m”,并给出“m”的副本。如何确保只打印唯一的子字符串
public static void allUniqueSubStrings(String str) {
for (int i = 1; i <= str.length(); i++) {
for (int j = 0; j + i <= str.length(); j++) {
String s = str.substring(j, i+j);
System.out.println(s);
}
}
}
# 1 楼答案
我们可以不使用arraylist直接进行操作,这会使您接受的上述答案有点混乱。检查我的代码
# 2 楼答案
请尝试以下代码。它应该按照你的要求工作
删除重复元素的最简单方法是将内容添加到不允许重复的
Set
中,然后将集合添加回ArrayList
# 3 楼答案
用一套来记住你已经看到的东西。对于长度为n的任何字符串,您大约有(n^2)/2个子字符串,因此集合的大小将以这样的方式有界