Golang | Leetcode Golang题解之第467题环绕字符串中唯一的子字符串

题目:

题解:

Go 复制代码
func findSubstringInWraproundString(p string) (ans int) {
    dp := [26]int{}
    k := 0
    for i, ch := range p {
        if i > 0 && (byte(ch)-p[i-1]+26)%26 == 1 { // 字符之差为 1 或 -25
            k++
        } else {
            k = 1
        }
        dp[ch-'a'] = max(dp[ch-'a'], k)
    }
    for _, v := range dp {
        ans += v
    }
    return
}

func max(a, b int) int {
    if b > a {
        return b
    }
    return a
}
相关推荐
tinker在coding4 小时前
Coding Caprice - Linked-List 1
算法·leetcode
南宫生9 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
Lenyiin10 小时前
第146场双周赛:统计符合条件长度为3的子数组数目、统计异或值为给定值的路径数目、判断网格图能否被切割成块、唯一中间众数子序列 Ⅰ
c++·算法·leetcode·周赛·lenyiin
涵涵子RUSH17 小时前
合并K个升序链表(最优解)
算法·leetcode
清炒孔心菜17 小时前
每日一题 338. 比特位计数
leetcode
sjsjs1118 小时前
【多维DP】力扣3122. 使矩阵满足条件的最少操作次数
算法·leetcode·矩阵
Sudo_Wang18 小时前
力扣150题
算法·leetcode·职场和发展
hkNaruto20 小时前
【P2P】【Go】采用go语言实现udp hole punching 打洞 传输速度测试 ping测试
golang·udp·p2p
入 梦皆星河20 小时前
go中常用的处理json的库
golang
呆呆的猫21 小时前
【LeetCode】9、回文数
算法·leetcode·职场和发展