文章目录
-
- 1.大赛题目
- 2.文字描述如下
- 3.代码实例
1.大赛题目
1.图片如下:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL0cmaNd3aq1keRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1EjMyAjMwYTM5ITOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.文字描述如下
试题 B: 不同子串
【问题描述】
一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成 的串。
例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个。 注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
3.代码实例
public class lanqiao10_2 {
public static void main(String args[]) {
String str2 = "0100110001010001";
Set<String> set = new HashSet<>();
//将每一个字符串添加到集合set中
for (int i = 0; i < str2.length(); i++) {
for (int j = i; j < str2.length(); j++) {
set.add(str2.substring(i, j+1));
}
}
System.out.println(set.size());
}
}
因为Set集合可以去除重复元素,所以将遍历的所有可能放到Set集合中
答案:100