8.28 - hard - 113

2017-08-29  本文已影响0人  健时总向乱中忙

639. Decode Ways II

虽然竞赛时候这道题AC了,不过写的code 狗啃一般,找了一个清爽的答案,不过感觉比较难想到

class Solution(object):
    def numDecodings(self, s):
        """
        :type s: str
        :rtype: int
        """
        S = s
        MOD = 10**9 + 7
        e0, e1, e2 = 1, 0, 0
        for c in S:
            if c == '*':
                f0 = 9*e0 + 9*e1 + 6*e2
                f1 = e0
                f2 = e0
            else:
                f0 = (c > '0') * e0 + e1 + (c <= '6') * e2
                f1 = (c == '1') * e0
                f2 = (c == '2') * e0
            e0, e1, e2 = f0 % MOD, f1, f2
        return e0
上一篇 下一篇

猜你喜欢

热点阅读