JS算法-重复的子字符串

139 阅读1分钟

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

重复子字符串

// 方法一:
var str = "abcabcabc";
function repeatedSubstringPattern(s) {
  let newStr = s + s;
  return newStr.slice(1, -1).indexOf(s) != -1;
};

repeatedSubstringPattern(str);

截屏2021-04-26下午2.29.22.png

// 方法二:
var str = "abcabcabc";
function repeatedSubstringPattern(s) {
  let reg = /^(\w+)\1+$/;
  return reg.test(s);
};

repeatedSubstringPattern(str);

截屏2021-04-26上午11.08.34.png

总结

在刷题的过程中发现一个问题,如果对正则表达式比较熟悉的话,会比较少的代码量就可以解决,但是目前来看,性能低于字符串方法。