Leetcode #91 Decode Ways
2015-08-05 23:42
423 查看
A message containing letters from
following mapping:
Given an encoded message containing digits, determine the total number of ways to decode it.
For example,
Given encoded message
2) or
The number of ways decoding
Difficulty:Medium
解法一,NP法,超时了。
解法二:用一个数组来记录前i(0-n)个的可能性,然后根据条件判断是nums[i]=nums[i-1]还是nums[i]=nums[i-1]+nums[i-2],条件比较绕,WA了好多次。
A-Zis 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.
Difficulty:Medium
解法一,NP法,超时了。
int count(string s){ int ans = 0; int len = s.length(); if(len==0) return 1; if(len==1) return 1; if(len==2&&s[0]-'0'>=2&&s[1]-'0'>6) return 1; if(len==2&&s[0]-'0'<=2&&s[1]-'0'<=6) return 2; //cout<<"111"<<endl; string s1,s2,s3; s1.push_back(s[0]); for(int i = 1;i<len;i++) s2.push_back(s[i]); ans = ans + count(s1)*count(s2); //cout<<ans<<endl; s1.push_back(s[1]); if(s1[0]-'0'<=2&&s1[1]-'0'<=6) { for(int i = 2;i<len;i++) s3.push_back(s[i]); ans = ans + count(s3); } return ans; } int numDecodings(string s) { if(s.length()==0) return 0; return count(s); }
解法二:用一个数组来记录前i(0-n)个的可能性,然后根据条件判断是nums[i]=nums[i-1]还是nums[i]=nums[i-1]+nums[i-2],条件比较绕,WA了好多次。
int numDecodings(string s) { int len = s.length(); vector<int> nums(len+1,0); if(len==0) return 0; if(s[0]=='0') return 0; if(len==1) return 1; nums[0] = 1;nums[1] = 1; for(int i = 2;i<=len;i++) { if(s[i-1]!='0') nums[i] = nums[i-1]; if(s[i-2]!='0') if((s[i-2]-'0'==1)||(s[i-2]-'0'==2&&s[i-1]-'0'<=6)) nums[i] = nums[i]+nums[i-2]; } return nums[len]; }
相关文章推荐
- Android下创建一个SQLite数据库
- Java学习笔记(十)collections框架概述
- UVA 1153 Keep the Customer Satisfied 顾客是上帝(贪心)
- 欢迎使用CSDN-markdown编辑器
- Spring(三): 事务
- 元素查找
- muduo::EventLoopThread、EventLoopThreadPool分析
- MySQL的数据关系处理流程
- 【dijkstra优化/次短路径】POJ3255-Roadblocks
- Linux-命令-find
- 基于spark实现表的join操作
- 【小熊刷题】Two Sum II - sorted array
- 读书笔记-《 我的成功可以复制》二
- 浅谈SaaS应用开发的难度
- 前端规范
- 基于spark实现表的join操作
- NYOJ 975 关于521
- Maven的依赖范围
- 取(2堆)石子游戏(威佐夫博弈+hdu2177)
- AVL树——深入浅出,一目了然