LeetCode
1668. 最大重复子字符串
链接: link
思路
可以简单暴力,拼串判断,不过dp高级一点 dp[i]表示长度为i之前的子串中包含word的最大重复值
状态转移方程:dp[i] = dp[i- w] + 1
代码
class Solution {
public int maxRepeating(String sequence, String word) {
int len = sequence.length();
int [] dp = new int[len + 1];//dp[i]表示以sequence之前的最大重复值
int w = word.length();
int res = 0;
for(int i = 0; i <= len; i++){//等于是因为substring的取值0到2三位就取前两位
if(i - w < 0) continue;
if(sequence.substring(i - w, i).equals(word)){
dp[i] = dp[i - w] + 1;
res = res > dp[i]? res : dp[i];
}
}
return res;
}
}