LeetCode 1668. 最大重复子字符串
题目描述
思路分析
解法一:逐次扩展(推荐)
核心思路:
- 反复拼接
word,判断是否仍为sequence的子串。- 最多重复次数即为答案。
复杂度分析:
- 时间复杂度:O(n * k),其中 n 为 sequence 长度,k 为重复次数。
- 空间复杂度:O(n),用于拼接字符串。
class Solution {
public int maxRepeating(String sequence, String word) {
int count = 0;
StringBuilder sb = new StringBuilder();
while (true) {
sb.append(word);
if (sequence.contains(sb.toString())) {
count++;
} else {
break;
}
}
return count;
}
}
func maxRepeating(sequence string, word string) int {
count := 0
cur := ""
for {
cur += word
if strings.Contains(sequence, cur) {
count++
} else {
break
}
}
return count
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 1668. 最大重复子字符串 | 简单 | 字符串 |
| 28. 找出字符串中第一个匹配项的下标 | 简单 | 字符串 |
| 459. 重复的子字符串 | 简单 | 字符串 |
| 686. 重复叠加字符串匹配 | 中等 | 字符串 |
| 1392. 最长快乐前缀 | 困难 | KMP |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!