35. Decode Ways FROM Leetcode

題目

A message containing letters from A-Z is being encoded to numbers using the following mapping:

'A' -> 1
'B' -> 2
...
'Z' -> 26

Given 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.

頻度: 4

解題之法

class Solution {
public:
    int numDecodings(string s) {
        
      int n = s.size();
      
      if(n == 0 || s[0] == '0') return 0;
      if(n == 1) return 1;
      
      int res = 0,fn_1 = 1,fn_2 = 1;
      for(int i = 1;i < n;i++){
        int temp = fn_1;
        if(isValid(s[i])&&isValid(s[i-1],s[i]))  res+=fn_1+fn_2;
        if(!isValid(s[i])&&isValid(s[i-1],s[i])) res+=fn_2;
        if(isValid(s[i])&&!isValid(s[i-1],s[i])) res+=fn_1;
        if(!isValid(s[i])&&!isValid(s[i-1],s[i]))  return 0;
        fn_1 = res;
        fn_2 = temp;
        res = 0;
    }
    return fn_1;
}
    bool isValid(char a,char b){
    return a == '1'||(a == '2' && b <='6');
}
bool isValid(char a){
    return a != '0';
}
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc閱讀 2,995評論 0 0
  • 到現(xiàn)在為止,依然還記得,2016年的夏天,我坐在通往大理到火車上,接近40多個小時的長途旅程令人崩潰,打開手機...
    Vivian勇敢在路上閱讀 1,524評論 6 26
  • 活著誰都希望被尊重 付出的再多 遇到不懂你的人 沒有珍惜的感情 又何必苦苦去維系。 有些情 是必定要舍棄的 有些人...
    文化品味小分享閱讀 475評論 0 0
  • 假期帶兩娃兒的生活開始了,早起一直忙到現(xiàn)在,買菜做飯洗衣服讀書讀自己的書讀孩子的書引導(dǎo)完大的自然拼引導(dǎo)小的漢語拼音...
    木木sani閱讀 169評論 0 0
  • 人的一生應(yīng)該這樣度過:當(dāng)他回首往事的時候,不因虛度年華而悔恨,也不因碌碌無為而羞愧。這是初中班主任引用保爾的一段話...
    詞窮者319閱讀 240評論 0 1

友情鏈接更多精彩內(nèi)容