字符串中包含多少子串

225 阅读1分钟

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

一个字符串的非空子串是指字符串中长度至少为 11 的连续的一段字符组成的串。例如,字符串 aaabaaab 有非空子串 a, b, aa, ab, aaa, aab, aaaba,b,aa,ab,aaa,aab,aaab,一共 77 个。

注意在计算时,只算本质不同的串的个数。

请问,字符串 01001100010100010100110001010001 有多少个不同的非空子串?

解决思路:

  1. 通过字段截取函数substr()截取str
  2. 将截取的字符串存成Object
  3. 通过Object.keys()将obj的key提取出来 arr
  4. 获取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