一条包含字母 A-Z 的消息通过以下方式进行了编码:
'A' -> 1 'B' -> 2 ... 'Z' -> 26
给定一个只包含数字的非空字符串,请计算解码方法的总数。
package main import ( "fmt" ) func main(){ str := "" fmt.Scan(&str) n := len(str) dp := make([]int, n+2) dp[0] = 1 dp[1] = 2 for i := 2 ; i < n ; i++ { if str[i-1] <= '2' && str[i] <= '6' { dp[i] = dp[i-2] + dp[i-1] }else{ dp[i] = dp[i-1] } } fmt.Println(dp[n-1]) }