Loading

[Python手撕]解码方法(组合总数,不需要去重)

class Solution:
    def numDecodings(self, s: str) -> int:

        if s[0] == '0':
            return 0

        n = len(s)
        dp = [0] * (n + 1)

        dp[0] = 1
        dp[1] = 1

        for i in range(2, n + 1):
            if "1" <= s[i - 1 : i] <= "9":
                dp[i] += dp[i - 1]
            if "10" <= s[i - 2 : i] <= "26":
                dp[i] += dp[i - 2]
        return dp[-1]
posted @ 2024-09-21 09:48  Duancf  阅读(13)  评论(0)    收藏  举报