Leetcode练习(python):字符串类:第91题:解码方法:一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数。


题目:
解码方法:一条包含字母 A-Z 的消息通过以下方式进行了编码:  'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数。  
思路:
一开始理解错题目了,使用字典去对应,发现题目要求不是这样的。
之后使用动态规划来做,需要考虑的情况比较多,踩了很多坑。
程序:
class Solution:
    def numDecodings(self, s: str) -> int:
        if not s:
            return 0
        if s[0] == '0':
            return 0
        length = len(s)
        counter = 1
        auxiliary_counter = 1
        if int(s) <= 10:
            return 1
        elif 10 < int(s) <= 26:
            if int(s) == 20:
                return 1
            else:
                return 2
        else:
            for index in range(1, length):
                if s[index] == '0':
                    if s[index - 1] == '1' or s[index - 1] == '2':
                        counter = auxiliary_counter
                    else:
                        return 0
                else:
                    if s[index - 1] == '1'  or (s[index - 1] == '2' and '1' <= s[index] <= '6'):
                        auxiliary = counter
                        counter += auxiliary_counter
                        auxiliary_counter = auxiliary
                    else:
                        auxiliary_counter = counter
        return counter


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 Leetcode练习(Python):字符串类:第17题:电话号码的字母组合:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 Leetcode练习(Python):第389题:找不同:给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 Leetcode练习(Python):字符串类:第58题:最后一个单词的长度:给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。 Leetcode练习(Python):数学类:第67题:二进制求和:给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 Leetcode练习(Python):字符串类:第20题:有效的括号:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 Leetcode练习(python):字符串类:第93题:复原IP地址:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。 给定一个字符串(只包含小写英文字母),按顺序执行以下两条规则,输出计算后的字符串。 Leetcode练习(Python):字符串类:第227题:基本计算器 II:实现一个基本的计算器来计算一个简单的字符串表达式的值。 字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。 Leetcode练习(Python):哈希表类:第49题:字母异位词分组:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 python 查找字符串同时包含数字和字母的最长子字符串的几种实现方法
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM