题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
一个字符串的非空子串是指字符串中长度至少为 11 的连续的一段字符组成的串。例如,字符串 aaabaaab 有非空子串 a, b, aa, ab, aaa, aab, aaaba,b,aa,ab,aaa,aab,aaab,一共 77 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串 01001100010100010100110001010001 有多少个不同的非空子串?
解决思路:
- 通过字段截取函数substr()截取str
- 将截取的字符串存成Object
- 通过Object.keys()将obj的key提取出来 arr
- 获取arr的长度
js代码
function contains() {
let str = '0100110001010001'
// let str = 'aaab'
let obj = {};
for (var i = 0; i < str.length; i++) {
for (var j = 0; j < str.length; j++) {
let w = str.substr(i, j);
obj[w] = 1
}
}
console.log('obj:', obj)
console.log('obj:', Object.keys(obj).length)
}
contains()
返回值 100