题目
459.重复的子字符串
给定一个非空的字符串 s
,检查是否可以通过由它的一个子串重复多次构成。
示例 1:
输入: s = "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。
示例 2:
输入: s = "aba" 输出: false
示例 3:
输入: s = "abcabcabcabc" 输出: true 解释: 可由子串 "abc" 重复四次构成。 (或子串 "abcabc" 重复两次构成。)
提示:
1 <= s.length <= 104
s
由小写英文字母组成
解法
class Solution {
public:
bool repeatedSubstringPattern(string s) {
string t;
for (int j = 0; j < s.length() / 2; j++) {
t.push_back(s[j]);
if (s.length() % t.length() != 0) {
continue;
}
for (int k = j + 1; k < s.length(); k += t.length()) {
if (s.compare(k, t.length(), t) != 0) {
break;
}
if (k == s.length() - t.length()) {
return true;
;
}
}
}
return false;
}
};
总结
注意compare函数的返回值,不是bool型.