Keshawn_lu's Blog

Leetcode 1668. 最大重复子字符串

字数统计: 289阅读时长: 1 min
2022/11/03 Share

题目简介:

给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word重复值为 k 。单词 word最大重复值 是单词 wordsequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重复值 k0

给你一个字符串 sequenceword ,请你返回 最大重复值 k

示例 1:

1
2
3
输入:sequence = "ababc", word = "ab"
输出:2
解释:"abab" 是 "ababc" 的子字符串。

示例 2:

1
2
3
输入:sequence = "ababc", word = "ba"
输出:1
解释:"ba" 是 "ababc" 的子字符串,但 "baba" 不是 "ababc" 的子字符串。

思路:

首先word可以重复的最大次数为sequence.size() / word.size()次,因此我们暴力重复遍历,观察重复后的word字符串是否在sequence中即可。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
int maxRepeating(string sequence, string word) {

int max_k = sequence.size() / word.size();
string temp = word;

int res = 0;

for(int i = 1; i <= max_k; i++){

if(sequence.find(temp) == string::npos){

res = max(res, i - 1);
break;
}

res = i;
temp += word;
}

return res;
}
};
CATALOG
  1. 1. 题目简介:
  2. 2. 思路:
  3. 3. 代码如下: