LeetCode 1668. 最大重复子字符串

题目描述

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
本文作者:
本文链接: https://hgnulb.github.io/blog/2025/56094852
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!