/**
* Abstract: A DP problem, immediately from the problem specs;
* however, state relation formulation requires careful consideration.
* To calculate dp[i], we take s[i] and proceed by checking weather s[i]
* can be decoded together with s[i - 1]. With this explaination,
* to understand the code here should not be of any difficulty.
*/
bool decode(char *s, int i) {
if (s[i - 1] == '0') return false;
int code = (s[i - 1] - '0') * 10 + (s[i] - '0');
return (code > 0 && code <= 26);
}
int numDecodings(char * s){
int n = strlen(s), dp[n];
dp[0] = s[0] == '0' ? 0 : 1;
if (n == 1) return dp[0];
if (dp[0] == 0) { return 0; }
if (s[1] == '0') {
dp[1] = decode(s, 1) ? 1 : 0;
} else {
dp[1] = decode(s, 1) ? 2 : 1;
}
if (dp[1] == 0) { return 0; }
for (int i = 2; i < n; i++) {
bool decoded = decode(s, i);
dp[i] = (s[i] == '0') ? (decoded ? dp[i - 2] : 0) : (decoded ? (dp[i - 2] + dp[i - 1]) : dp[i - 1]);
if (dp[i] == 0) { return 0; }
}
return dp[n - 1];
}
LeetCode #91 Decode Ways
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門碑定,熙熙樓的掌柜王于貴愁眉苦臉地迎上來流码,“玉大人,你說我怎么就攤上這事不傅÷玫啵” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵访娶,是天一觀的道長商虐。 經(jīng)常有香客問我,道長崖疤,這世上最難降的妖魔是什么秘车? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮劫哼,結(jié)果婚禮上叮趴,老公的妹妹穿的比我還像新娘。我一直安慰自己权烧,他們只是感情好眯亦,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著般码,像睡著了一般妻率。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上板祝,一...
- 文/蒼蘭香墨 我猛地睜開眼说搅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了琢蛤?” 一聲冷哼從身側(cè)響起蜓堕,我...
- 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎博其,沒想到半個(gè)月后套才,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡慕淡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年背伴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片峰髓。...
- 正文 年R本政府宣布徐紧,位于F島的核電站静檬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏并级。R本人自食惡果不足惜拂檩,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘲碧。 院中可真熱鬧稻励,春花似錦、人聲如沸愈涩。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽履婉。三九已至糠聪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谐鼎,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長得像草戈,于是被迫代替她去往敵國和親塌鸯。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 91 Decode Ways 解碼方法 Description:A message containing lett...
- 原題 有一個(gè)消息包含A-Z通過以下規(guī)則編碼 現(xiàn)在給你一個(gè)加密過后的消息唐片,問有幾種解碼的方式 樣例給你的消息為12丙猬,...
- 題目 給定一個(gè)字符串, 字符串元素都是數(shù)字. 數(shù)字和字母有對應(yīng)關(guān)系'A' -> 1, 'B'->2,...,'Z'...
- LeetCode 91 Decode Ways A message containing letters from...
- 1 使用動態(tài)規(guī)劃來解 2 這里額外的空間就是dp[i-1]和dp[i-2],時(shí)間復(fù)雜度是O(n) 3 有時(shí)候只需要...