Leetcode 91: Decode Ways
Posted Keep walking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 encoded message "12"
, it could be decoded as "AB"
(1 2) or "L"
(12).
The number of ways decoding "12"
is 2.
1 public class Solution { 2 public int NumDecodings(string s) { 3 if (s.Length == 0 || s[0] == ‘0‘) return 0; 4 5 int dp0 = 1, dp1 = 1; 6 7 for (int i = 1; i < s.Length; i++) 8 { 9 var dp2 = 0; 10 var decode = ((int)s[i - 1] - (int)‘0‘) * 10 + ((int)s[i] - (int)‘0‘); 11 if (decode >= 10 && decode <= 26) 12 { 13 dp2 = dp0; 14 } 15 16 if (decode % 10 != 0) 17 { 18 dp2 += dp1; 19 } 20 21 dp0 = dp1; 22 dp1 = dp2; 23 } 24 25 return dp1; 26 } 27 }
以上是关于Leetcode 91: Decode Ways的主要内容,如果未能解决你的问题,请参考以下文章