标签:
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 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 int n = s.length(); 4 if (n == 0) return 0; 5 6 int[] memo = new int[n+1]; 7 memo[n] = 1; 8 memo[n-1] = s.charAt(n-1) != ‘0‘ ? 1 : 0; 9 10 for (int i = n - 2; i >= 0; i--) 11 if (s.charAt(i) == ‘0‘) continue; 12 else memo[i] = (Integer.parseInt(s.substring(i,i+2))<=26) ? memo[i+1]+memo[i+2] : memo[i+1]; 13 14 return memo[0]; 15 } 16 }
标签:
原文地址:http://www.cnblogs.com/qq1029579233/p/4489230.html