题目描述:
给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k 。 单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重复值 k 为 0 。 给你一个字符串 sequence 和 word ,请你返回 最大重复值 k
解题思路:
该题是在一个字符串中对于词word连续出现次数的统计,所以我们只需要去寻找word在词sequence中最大的连续出现次数。理想状态下,len(sequence) = len(word) *k,即k个word刚好组成sequence,我们就此入手,给一个while语句去判断word乘以k是否在sequence中,如果不在则k-1,直到出现word*k in sequence时,返回k的值,则为最终解。
代码:
class Solution: def maxRepeating(self, sequence: str, word: str) -> int: len_sequence = len(sequence) len_word = len(word) max_k = len_sequence // len_word while max_k: if (word * max_k) not in sequence: max_k -= 1 else: return max_k return 0