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

}
相关推荐
益达爱喝芬达9 分钟前
力扣11.23
数据结构·算法·leetcode
Sunyanhui120 分钟前
力扣 无重复字符的最长字串-3
算法·leetcode·职场和发展
techdashen39 分钟前
Go与黑客(第四部分)
开发语言·后端·golang
曾几何时`1 小时前
对撞双指针(七)三数之和
数据结构·算法·leetcode
薔薇十字1 小时前
【代码随想录day36】【C++复健】1049. 最后一块石头的重量 II ; 494. 目标和 ;474.一和零
c++·算法·leetcode
m0_694938011 小时前
Leetcode打卡:最小区间
算法·leetcode·职场和发展
hummhumm1 小时前
第 32 章 - Go语言 部署与运维
java·运维·开发语言·后端·python·sql·golang
techdashen1 小时前
Go与黑客(第二部分)
开发语言·后端·golang
LightOfNight1 小时前
一文学会Golang里拼接字符串的6种方式(性能对比)
开发语言·golang
凡人的AI工具箱3 小时前
40分钟学 Go 语言高并发实战:高性能缓存组件开发
开发语言·后端·缓存·架构·golang