459. 重复的子字符串https://leetcode.cn/problems/repeated-substring-pattern/
难度简单923收藏分享切换为英文接收动态反馈
给定一个非空的字符串 s
,检查是否可以通过由它的一个子串重复多次构成。
示例 1:
输入: s = "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。
示例 2:
输入: s = "aba" 输出: false
示例 3:
输入: s = "abcabcabcabc" 输出: true 解释: 可由子串 "abc" 重复四次构成。 (或子串 "abcabc" 重复两次构成。)
提示:
1 <= s.length <= 104
s
由小写英文字母组成
题解:
将s拼接,s+s,假定s确实是由重复的字符串构成的,那么将两个字符串拼接,拼接后的新字符串中间必然会有一个s,例如"abab","abab",拼接后形成"abababab",其中间就出现了一个s。那么只要判断是否有s就能够得出结果。
/**
* @param {string} s
* @return {boolean}
*/
var repeatedSubstringPattern = function(s) {
let newstr=s+s;
return newstr.substring(1,newstr.length-1).includes(s);
};