81 leetcode - Decode Ways

来源:互联网 发布:网络问诊平台 编辑:程序博客网 时间:2024/06/07 20:45
#!/usr/bin/python# -*- coding: utf-8 -*-'''Decode WaysA message containing letters from A-Z is being encoded to numbers using the following mapping:'A' -> 1'B' -> 2...'Z' -> 26Given an encoded message containing digits, determine the total number of ways to decode it.For example,Given encoded message "12", it could be decoded as "AB" (1 2) or "L" (12).The number of ways decoding "12" is 2.走台阶问题的变种'''class Solution(object):            def numDecodings(self, s):        """        :type s: str        :rtype: int        """        length = len(s)        if length == 0 or s[0] == '0':            return 0        dp = [0] * (length + 1)        dp[0] = dp[1] = 1        index = 1        while index < length:            #如果当前数字不为0,说明当前位置可以独当一面...            if s[index] != '0':                dp[index + 1] += dp[index]            #当前数据也可能与前一位搭伙,但是要符合10~27的范围            if '10' <= s[index - 1: index + 1] < '27':                dp[index + 1] += dp[index - 1]            index += 1        #print dp        return dp[-1]if __name__ == "__main__":    s = Solution()    print s.numDecodings('335')    print s.numDecodings('205')    print s.numDecodings('101')
0 0
原创粉丝点击