#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 解码
# @param nums string字符串 数字串
# @return int整型
#
class Solution:
def solve(self, nums: str) -> int:
# write code here
if nums == "0":#为0的情况,无法被翻译
return 0
if nums == "10" or nums == "20":#10或20,只有一种情况
return 1
for i in range(1, len(nums)):#寻找字符串中所有不符合条件数字,若有则无法翻译
if nums[i] == "0" and nums[i - 1] != "1" and nums[i - 1] != "2":
return 0
dp = [1] * (len(nums) + 1)
for i in range(2, len(nums) + 1):
if nums[i - 2] == "1" and nums[i - 1] != "0" or nums[i - 2] == "2" and '0'< nums[i - 1] < "7":#可以两个字数字一起翻译的情况
dp[i] = dp[i - 1] + dp[i - 2]
else:#其余只能翻译单个数字的情况
dp[i] = dp[i - 1]
return dp[-1]