题目:
给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k 。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重复值 k 为 0 。
给你一个字符串 sequence 和 word ,请你返回 最大重复值 k 。
思路:
直接枚举,注意到字符串长度不超过 100,直接从大到小枚举 word 的重复次数 k,判断 word 重复该次数后是否是 sequence 的子串,是则直接返回当前的重复次数 k。
代码:
class Solution {
public:
int maxRepeating(string sequence, string word) {
int ans = 0;
string t = word;
int x = sequence.size() / word.size();
for (int k = 1; k <= x; ++k) {
// C++ 这里从小到大枚举重复值
if (sequence.find(t) != string::npos) {
ans = k;
}
t += word;
}
return ans;
}
};