0091.解码方法
方法一:动态规划
时间复杂度 $O(n)$,空间复杂度 $O(1)$。
func numDecodings(s string) int {
if s[0] == '0' {
return 0
}
a, b, c := 1, 1, 1
for i := 1; i < len(s); i++ {
pv, v := int(s[i-1]-'0'), int(s[i]-'0')
c = 0
if v != 0 {
c = b
}
if pv != 0 && pv*10+v >= 1 && pv*10+v <= 26 {
c += a
}
a, b = b, c
}
return c
}