题解 | #把数字翻译成字符串#
把数字翻译成字符串
https://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668
from enum import Flag
from sys import flags
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 解码
# @param nums string字符串 数字串
# @return int整型
#
class Solution:
def solve(self , nums: str) -> int:
# write code here
n =len(nums)
dp =[0]*n
flag =True
for i in range(n):
if i==0:
if nums[i]=='0':
dp[i]=0
else:
dp[i]=1
if i==1:
c=nums[i-1:i+1]
cn = int(nums[i-1:i+1])
if '0' in c:
if '00' in c:
dp[i]=0
else:
if '0'==c[0]:
dp[i]=0
else:
if '10' in c or '20' in c:
dp[i]=1
else:
dp[i]=0
else:
if cn>0 and cn <27:
dp[i]=2
else:
dp[i]=1
if i>1:
c= nums[i-1:i+1]
cn=int(nums[i-1:i+1])
if '0' in c:
if '00'==c:
dp[i]=0
else:
if '0' in c[0]:
dp[i]=dp[i-1]
else:
if '10' in c or '20' in c:
dp[i]=dp[i-2]
else:
dp[i]=0
else:
if cn>0 and cn<27:
dp[i]=dp[i-1]+dp[i-2]
else:
dp[i]=dp[i-1]
if Flag:
return dp[-1]
else:
return 0
查看18道真题和解析