2021-08-15:给定一个字符串Str,返回Str的所有子序列中有多少不同的字面值。
2021-08-15:给定一个字符串Str,返回Str的所有子序列中有多少不同的字面值。
福大大 答案2021-08-15:
返回值=上+新-修正。
时间复杂度:O(N)
空间复杂度:O(N)。
代码用golang编写。代码如下:
package main
import "fmt"
func main() {
s := "aabb"
ret := distinctSubseqII(s)
fmt.Println(ret)
}
func distinctSubseqII(s string) int {
if len(s) == 0 {
return 0
}
m := 1000000007
count := make([]int, 26)
all := 1 // 算空集
for _, x := range s {
add := (all - count[x-'a'] + m) % m
all = (all + add) % m
count[x-'a'] = (count[x-'a'] + add) % m
}
return all - 1
}
func zuo(s string) int {
if len(s) == 0 {
return 0
}
m := 1000000007
map0 := make(map[byte]int)
all := 1 // 一个字符也没遍历的时候,有空集
for i := 0; i < len(s); i++ {
x := s[i]
newAdd := all
curAll := all
curAll = (curAll + newAdd) % m
if _, ok := map0[x]; ok {
curAll = (curAll - map0[x] + m) % m
} else {
curAll = (curAll + m) % m
}
all = curAll
map0[x] = newAdd
}
return all
}
执行结果如下:
公众号:福大大架构师每日一题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
2020-08-15 2020-08-14:数据任务的执行引擎用的哪些?