<pre name="code" class="java">//http://blog.youkuaiyun.com/xshalk/article/details/8186146
//动态规划的思想
public class Solution {
public int numDecodings(String s){
if(s.length()==0) return 0;
int len=s.length();
if(len<1) return 0;
int[] numarray=new int[len];
int i=len-1;
numarray[i]=(s.charAt(i)=='0')?0:1;
i--;
while(i>=0){
if(s.charAt(i)=='0') numarray[i]=0;
else if(s.charAt(i)=='1'||(s.charAt(i)=='2'&&s.charAt(i+1)<='6')){//判断是10以上的数字则具有两种情况
if(i==len-2){
numarray[i]=numarray[i+1]+1;
}else{
numarray[i]=numarray[i+1]+numarray[i+2];
}
}
else{
numarray[i]=numarray[i+1];
}
i--;
}
return numarray[0];
}
}