题目链接: 剑指 Offer 46. 把数字翻译成字符串
题目描述:
解法思路:
代码:
// dp[i] = dp[i-1] + dp[i-2]
// dp[i] 表示长度为i的数字,翻译成字符串有多少种
func translateNum(num int) int {
s := strconv.Itoa(num)
n := len(s)
dp := make([]int,n+1)
dp[0] = 1 //初始时只有一种
dp[1] = 1 // 长度为 1 也是一种
for i := 2; i <= n;i++{
dp[i] = dp[i-1] //单个数字翻译
t := (s[i-2]-'0') * 10 + (s[i-1] - '0')
if t >=10 && t <= 25 { // 如果两个数字翻译,也可以,那就加上这种情况
dp[i] += dp[i-2]
}
}
return dp[n]
}
标签:Offer,46,int,翻译成,字符串,dp
From: https://www.cnblogs.com/lxing-go/p/17685552.html