LC91 Decode Ways

典型的动态规划题,和《剑指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 };

时间: 2024-08-25 22:56:26

LC91 Decode Ways的相关文章

[email&#160;protected] [91] Decode Ways (Dynamic Programming)

https://leetcode.com/problems/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 wa

[LeetCode]91.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 encode

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

[LeetCode] Decode Ways [33]

题目 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 enco

【LeetCode】091. 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 enco

44. Decode Ways &amp;&amp; Gray Code

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, G

LeetCode: Decode Ways [090]

[题目] 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 en

Leetcode 动态规划 Decode Ways

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie Decode Ways Total Accepted: 8689 Total Submissions: 55465 A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given a

Decode Ways leetcode java

题目: 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 enc