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):第389题:找不同:给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 Leetcode练习(Python):字符串类:第17题:电话号码的字母组合:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 Leetcode练习(Python):字符串类:第20题:有效的括号:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 Leetcode练习(Python):哈希表类:第49题:字母异位词分组:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 Leetcode练习(Python):第415题:字符串相加:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 LeetCode第[91]题(Java):Decode Ways(解码方法数) 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以被 Leetcode练习(Python):字符串类:第43题:字符串相乘:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 LeetCode 第 242 题:给定两个字符串 s 和 t,编写一个函数来判断 t 是否是 s 的字母异位词 Leetcode练习(python):字符串类:第93题:复原IP地址:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM