给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

class Solution {
public:
bool repeatedSubstringPattern(string s) {
string str = s+s;
str = str.substr(1,str.length() - 2);
if(str.find(s)!=-1)
return true;
else
return false;
//abaaba
}
};
思路:
- s+s
- 破坏到第一个s的前半部分,破坏掉第二个s的后半部分
- 如果是一个子串重复多次构成,则第一个s的后半部分和第二个s的前半部分一定可以拼凑成一个s
- 如果不是,肯定拼凑不出来
- 即s+s,掐头去尾找自己
给定一个字符串s,该算法检查是否能通过s的一个子串重复多次来构成原字符串。方法是将s与自身拼接,然后去除首尾字符,看剩余部分是否包含原始的s。
477

被折叠的 条评论
为什么被折叠?



