Decode Ways
来源:互联网 发布:arm单片机型号 编辑:程序博客网 时间:2024/05/22 15:56
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.
算是dp。 应为是组合数,所以应该想清楚的是,如果当前i只有一种解释,那么总数为i-1的数,如果i-1和i合起来还有一种解释,那么就要加上i-2的和。
比较特殊的是,isValid要检查在不在26个字母中间,比较注意的是第一个不要为0. 算结果的时候前两个需要特殊处理一下从第三个开始loop
class Solution {public: int numDecodings(string s) { int n=s.size(); if (n==0) return 0; vector<int> res(n,0); if (s[0]!='0') res[0]++; if (n==1) return res[0]; if(isValid(s.substr(0,2))) res[1]++; if (s[0]!='0' && s[1]!='0') res[1]++; for (int i=2; i<n; i++){ if (s[i]!='0') res[i]+=res[i-1]; if (isValid(s.substr(i-1,2))) res[i]+=res[i-2]; } return res[n-1]; }private: bool isValid(string s){ int size=s.size(); if (size==0) return false; if (size==1 && s[0]=='0') return false; if (size==2 && ((s[0]=='2' && s[1]>'6')|| s[0]>'2'||s[0]=='0')) return false; return true; }};
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
- Pretty print binary tree
- [Leetcode] 140. Work Break II
- Python 传递可变长参数
- windows下安装apache及php需要注意的问题
- 嵌入式 linux 第四课 内存管理单元MMU
- Decode Ways
- 如何解析SDP中包含的H.264的SPS和PPS串
- css滑动门技术
- hadoop 不使用hostname,使用ip遇到的问题(Datanode denied communication with namenode because hostname cann)及解决方案
- Calpuff-Server-GeoFile.cs
- calpuff-server-GeoFile.cs
- calpuff-server-ServerConf.cs
- calpuff-server-Form1.cs
- 如何将jar包加入到Maven本地仓库