Golang | Leetcode Golang题解之第392题判断子序列

题目:

题解:

Go 复制代码
func isSubsequence(s string, t string) bool {
    n, m := len(s), len(t)
    f := make([][26]int, m + 1)
    for i := 0; i < 26; i++ {
        f[m][i] = m
    }
    for i := m - 1; i >= 0; i-- {
        for j := 0; j < 26; j++ {
            if t[i] == byte(j + 'a') {
                f[i][j] = i
            } else {
                f[i][j] = f[i + 1][j]
            }
        }
    }
    add := 0
    for i := 0; i < n; i++ {
        if f[add][int(s[i] - 'a')] == m {
            return false
        }
        add = f[add][int(s[i] - 'a')] + 1
    }
    return true
}
相关推荐
Wang's Blog7 分钟前
Go-Zero 项目开发19:基于 Kafka 的异步消息存储与转发实战
golang·kafka
小莫分享31 分钟前
sshw:用交互搜索和 Web 配置高效管理 SSH Server
linux·运维·golang·开源·ssh
名字还没想好☜33 分钟前
Go 结构体内存对齐:调整字段顺序,同样的字段省下 40% 内存
开发语言·后端·golang·go·内存对齐
玖玥拾39 分钟前
LeetCode 13 罗马数字转整数
笔记·算法·leetcode
FfHUCisI1 小时前
sync.Mutex 互斥锁
golang
牛奔10 小时前
Go 如何打印调试深层或嵌套的结构体
开发语言·后端·golang
geovindu11 小时前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
kite012112 小时前
Go语言Map深度解析与最佳实践
开发语言·后端·golang
闪电悠米13 小时前
力扣hot100-48.旋转图像-转置翻转详解
算法·leetcode·职场和发展
啦啦啦啦啦zzzz14 小时前
算法:贪心算法
c++·算法·leetcode·贪心算法