前端企业面试题:企业真实案例——37

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。

示例 1:

输入: "abab"
输出: True
解释: 可由子字符串 "ab" 重复两次构成。

示例 2:

输入: "aba"
输出: False

示例 3:

输入: "abcabcabcabc"
输出: True
解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)

思路:

使用正则来验证字符串是否为重复内容

从第一个字符开始,逐渐增加字符个数

直到超过半数,仍未找到重复内容,则放弃

var repeatedSubstringPattern = function(s) {
    var len = parseInt(s.length/2);
    for(var i=1; i<=len; i++){
        var reg = new RegExp( '^('+s.substring(0,i)+")+$", "g" );
        if(reg.test(s)) return true;
    }
    return false;
};

猜你喜欢

转载自blog.csdn.net/GUDUzhongliang/article/details/108600181
今日推荐