标签:style color ar os java sp for on bs
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.
curNum:代表当前数的解码数量
num2: 前一个数的解码数量
num1: 前两个数的解码数量
    public int numDecodings(String s) {
		if (s == null || s.length() == 0 || s.charAt(0) == '0')
			return 0;
		int num1 = 1;
		int num2 = 1;
		int curNum = 1;
		for (int i = 1; i < s.length(); i++) {
			if (s.charAt(i) == '0') {
				if (s.charAt(i-1) == '1' || s.charAt(i-1) == '2')
					curNum = num1;
				else
					return 0;
			}
			else {
			    if(s.charAt(i-1)=='1'||s.charAt(i-1)=='2'&&s.charAt(i)>='1'&&s.charAt(i)<='6')
			        curNum = num1+num2;
			    else
			        curNum = num2;
			}
			num1=num2;
			num2=curNum;
		}
		return curNum;
	}
标签:style color ar os java sp for on bs
原文地址:http://blog.csdn.net/yexiao123098/article/details/41041769