Decode Ways
来源:互联网 发布:汽车美容快修软件 编辑:程序博客网 时间:2024/06/05 17:18
class Solution {
public:
int numDecodings(string s) {
if(s.empty()) return 0;
if(s.size()==1&&s=="0") return 0;
if(s.size()==1&&s!="0") return 1;
if(s[0]=='0') return 0;
int dp1 = 1,dp2=1;
for(int i = 1; i < s.size(); i++){
int codeInt = 10 * (s[i - 1] - '0') + s[i] - '0', tmp = dp1; //前一次的一定要保留; 2123 23结合 dp2相当于21的种数;
if(s[i] == '0' && (s[i-1] == '0' || s[i-1] > '2')) return 0;
if (codeInt == 10 || codeInt == 20) dp1 = dp2; //碰到0不加;退回到前前的情况
else if (10 < codeInt && codeInt <= 26) dp1 += dp2; //else 一定要加;
dp2 = tmp;
}
return dp1;
}
};
public:
int numDecodings(string s) {
if(s.empty()) return 0;
if(s.size()==1&&s=="0") return 0;
if(s.size()==1&&s!="0") return 1;
if(s[0]=='0') return 0;
int dp1 = 1,dp2=1;
for(int i = 1; i < s.size(); i++){
int codeInt = 10 * (s[i - 1] - '0') + s[i] - '0', tmp = dp1; //前一次的一定要保留; 2123 23结合 dp2相当于21的种数;
if(s[i] == '0' && (s[i-1] == '0' || s[i-1] > '2')) return 0;
if (codeInt == 10 || codeInt == 20) dp1 = dp2; //碰到0不加;退回到前前的情况
else if (10 < codeInt && codeInt <= 26) dp1 += dp2; //else 一定要加;
dp2 = tmp;
}
return dp1;
}
};
0 0
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- iOS集成容联云通信 IM
- (九) Build Variants(构建变种版本)
- mongoDb-学习笔记3
- angular指令插件1——toggle
- android事件之onInterceptTouchEvent,dispatchTouchEvent,onTouchEvent,requestDisallowInterceptTouchEvent
- Decode Ways
- Android 5.1 Phone MT(来电)流程分析(应用层)
- 关于细节
- SWTableViewCell滑动删除表格行
- 使用Gson转化天气预报Json
- windows下mysql忘记root密码的解决办法
- java volatile关键字
- webService学习记录-01
- iOS app打包 -- 生成ipa测试包 步骤详解