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