其他分享
首页 > 其他分享> > leetcode91解码

leetcode91解码

作者:互联网

 

解码,dp,注意特殊情况

 

 

 

 

 

 

 

 

 

def numDecodings( s: str) -> int:
    if len(s) < 1:
        return 1
    if s[0] =='0':
        return 0
    if len(s) == 1:
        return 1
    dp = [0 for i in range(len(s)+1)]
    dp[0] = 1
    dp[1] = 1
    for i in range(2, len(s)+1):
        if s[i-1] =='0':
            if int(s[i-2:i])<=26 and s[i-2]!='0':
                dp[i] = dp[i-2]
            else:
                dp[i]=0
        else:
            if int(s[i-2: i]) <=26 and s[i-2]!='0':
                dp[i] = dp[i-2] + dp[i-1]
            else:
                if s[i-1] == '0':
                    dp[0] = 0
                else:
                    dp[i] = dp[i-1]
    return dp[len(s)]

print(numDecodings('12'))

  

标签:return,int,leetcode91,解码,len,range,dp
来源: https://www.cnblogs.com/BetterThanEver_Victor/p/16354035.html