问题描述:
给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,
那么单词 word 的 重复值为 k 。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。
如果 word 不是 sequence 的子串,那么重复值 k 为 0 。
给你一个字符串 sequence 和 word ,请你返回 最大重复值 k 。
样例如下:
代码如下:
public class MaxRepeating {
// 给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,
// 那么单词 word 的 重复值为 k 。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。
// 如果 word 不是 sequence 的子串,那么重复值 k 为 0 。
// 给你一个字符串 sequence 和 word ,请你返回 最大重复值 k 。
public static int maxRepeating(String sequence, String word) {
int count = 0;//记录数量
String temp = word;
if (!sequence.contains(word)) return count; //若刚开始就不存在 直接返回0
else {
count++;
int num =sequence.length()-word.length();
for (int i = 0; i <=num; i++) {
word = word+temp;
if (sequence.contains(word)) count++;
else break;
}
}
return count;
}
public static void main(String[] args) {
System.out.println(maxRepeating(new String("aaabaaaabaaabaaaabaaaabaaaabaaaaba"),new String("aaaba")));
System.out.println(maxRepeating(new String("ababc"),new String("ba")));
System.out.println(maxRepeating(new String("ababc"),new String("ac")));
}
}
结果如下: