问题描述:
一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成的串。
例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?
输入格式:
长度至少为1的连续字符串。
输出格式:
一个整数,表示含有多少个子串。
样例输入:
aaab
样例输出:
7
代码:
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
List<String> list = new ArrayList<String>();
for (int i = 0; i < line.length(); i++) {
for (int j = 0, k = i + 1; k <= line.length(); j++, k++) {
if (list.contains(line.substring(j, k))) {
continue;
} else {
list.add(line.substring(j, k));
}
}
}
System.out.println(list.size());
}
![](https://i-blog.csdnimg.cn/blog_migrate/27f9911658dc9e43ebf79ae552ada793.jpeg)