Golang | Leetcode Golang题解之第466题统计重复个数

题目:

题解:

Go 复制代码
func getMaxRepetitions(s1 string, n1 int, s2 string, n2 int) int {
	n := len(s2)
	cnt := make([]int, n)
	for i := 0; i < n; i++ {
        // 如果重新给一个s1 并且s2是从第i位开始匹配 那么s2可以走多少位(走完了就从头开始走
		p1, p2 := 0, i
		for p1 < len(s1) {
			if s1[p1] == s2[p2 % n] {
				p2++
			}
            p1++
		}
        // 统计如果是从s2的第i位开始走 给一个新的s1 s2能走多少位
		cnt[i] = p2 - i
	}
	index := 0
    // 直接模拟不断给s1 然后看s2能新走多少位
	for i := 0; i <n1; i++ {
		index += cnt[index % n]
	}
	return index / n / n2

}
相关推荐
希望我万事顺遂17 小时前
力扣hot100-滑动窗口最大值
数据结构·算法·leetcode
喵了几个咪18 小时前
GoWind Flow 拆解:一个 Go 工作流引擎与它的双模式设计器
开发语言·人工智能·后端·golang
codeejun18 小时前
每日一Go·MySQL-14、慢 SQL 产生原因全解
sql·mysql·golang
是main不是漫18 小时前
【双指针|LeetCode1089 复写零】巧用逆向思路,破解原地覆盖陷阱
数据结构·算法·leetcode
Pniubi1 天前
力扣76.最小覆盖子串
算法·leetcode·职场和发展
文丑颜不良啊2 天前
LeetCode2541~2560题目解析
java·leetcode
文丑颜不良啊2 天前
LeetCode2481~2500题目解析
java·leetcode
文丑颜不良啊3 天前
LeetCode2461~2480题目解析
java·leetcode
文丑颜不良啊3 天前
LeetCode2441~2460题目解析
java·leetcode
文丑颜不良啊3 天前
LeetCode2521~2540题目解析
java·leetcode