91. 解码方法
1 class Solution 2 { 3 public: 4 // 前i个字符串构成 == 前i-1个字符串构成(只有一个字符1-9) 5 // +前i-2个字符串构成(只有两个字符10-26) 6 int numDecodings(string s) 7 { 8 int n = s.size(); 9 vector<int> dp(n + 1); 10 dp[0] = 1;//前零个字符串只有一种构成方法(空字符串) 11 for(int i = 1;i <= n;i ++) 12 { 13 if(s[i - 1] != '0') dp[i] += dp[i - 1]; 14 if(i >= 2) 15 { 16 int t = (s[i - 2] - '0') * 10 + s[i - 1] - '0'; 17 if(t >= 10 && t <= 26) dp[i] += dp[i - 2]; 18 } 19 } 20 return dp[n]; 21 } 22 };
Mamba never out

浙公网安备 33010602011771号