码迷,mamicode.com
首页 > 其他好文 > 详细

LC91 Decode Ways

时间:2016-04-01 21:50:34      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

典型的动态规划题,和《剑指offer》中的矩形覆盖题相似,只不过要考虑不同的边界情况。

另外对于《剑指offer》中的矩形覆盖题,值得考虑的是当矩形是n*n时,会有多少种覆盖的情况?

技术分享
 1 class Solution {
 2 public:
 3     int numDecodings(string s) {
 4         if(s==""||s[0]==0)
 5             return 0;
 6         if(s.length()==1&&s[0]!=0)
 7             return 1;
 8         if(s.length()>=2&&s[1]==0)
 9         {
10             if((s[0]-0)*10+s[1]-0>20)
11                 return 0;
12         }
13         int len=s.length();
14         vector<int> iv(len,0);
15         int flag=0;
16         if(s[0]!=0&&s[1]!=0)
17         {
18             iv[0]=1;iv[1]=1;
19             if((s[0]-0)*10+s[1]-0<=26)
20                 iv[1]++;
21         }
22         else if(s[0]!=0&&s[1]==0)
23         {
24             iv[0]=1;iv[1]=1;flag=1;
25         }
26         for(int i=2;i<len;i++)
27         {
28             if(s[i]==0)
29             {
30                 if(flag==1)
31                     return 0;
32                 if((s[i-1]-0)*10+s[i]-0>20)
33                     return 0;
34                 iv[i]=iv[i-2];
35                 flag=1;
36             }
37             else
38             {
39                 if(flag==1)
40                 {
41                     iv[i]=iv[i-1];
42                 }
43                 else
44                 {
45                     iv[i]=((s[i-1]-0)*10+s[i]-0<=26)?(iv[i-1]+iv[i-2]):iv[i-1];
46                 }
47                 flag=0;
48             }
49         }
50         return iv[len-1];
51     }
52 };
View Code

 

LC91 Decode Ways

标签:

原文地址:http://www.cnblogs.com/vaecn/p/5346293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!