Preguntas de la entrevista empresarial de front-end: caso empresarial real-37

Dada una cadena no vacía, juzgue si puede estar compuesta por una subcadena repetida varias veces. La cadena dada contiene solo letras minúsculas en inglés y la longitud no excede las 10,000.

Ejemplo 1:

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

Ejemplo 2:

输入: "aba"
输出: False

Ejemplo 3:

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

 

 

Ideas:

Use regular para verificar si la cadena es contenido duplicado

A partir del primer carácter, aumente gradualmente el número de caracteres.

Hasta que más de la mitad, no se encuentre contenido duplicado, abandone

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;
};

Supongo que te gusta

Origin blog.csdn.net/GUDUzhongliang/article/details/108600181
Recomendado
Clasificación