设为首页 加入收藏

TOP

LeetCode之Decode Ways
2015-07-24 05:44:01 来源: 作者: 【 】 浏览:4
Tags:LeetCode Decode Ways

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.

跟Climbing Stairs很类似,不过多加一些判断逻辑。

class Solution {
public:
    int numDecodings(string s) {
        if(s.empty() ||s[0]=='0') return 0;
        int cur_2=1,cur_1=1,cur=0;
        for(int i=2;i<=s.size();i++){
            if(s[i-1]!='0') cur+=cur_1;
            if(s[i-2]=='1'||s[i-2]=='2'&& s[i-1]<='6')
                cur+=cur_2;
            cur_2=cur_1;
            cur_1=cur;
            cur=0;
        }
        return cur_1;
    }
};


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇uva:10487 - Closest Sums(二分.. 下一篇零基础学cocos2dx 3.0(顺带学C++..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: