leetcode url:https://leetcode.com/problems/decode-ways/
public class Solution {
public int numDecodings(String s) {
s=s.trim();
if(s==null || s.equals("") || s.charAt(0)=='0' || s.contains("00")) return 0;
else if(s.length()==1 && Integer.parseInt(s)==0)
return 0;
else if(s.length()==1 && Integer.parseInt(s)!=0)
return 1;
else if(s.length()==2 && Integer.parseInt(s)<10){
return 0;
}
else if(s.length()==2 && (Integer.parseInt(s)==10 || Integer.parseInt(s)==20)){
return 1;
}
else if(s.length()==2 && Integer.parseInt(s)>10 && Integer.parseInt(s)<=26 && Integer.parseInt(s)!=20){
return 2;
}
else if(s.length()==2 && Integer.parseInt(s)>26 && s.charAt(s.length()-1)!='0' )
return 1;
else if(s.length()==2 && Integer.parseInt(s)>26 && s.charAt(s.length()-1)=='0' )
return 0;
else{
if(s.charAt(s.length()-2)!='0' && s.charAt(s.length()-1)!='0' && Integer.parseInt(s.substring(s.length()-2,s.length()))<=26)
return numDecodings(s.substring(0,s.length()-2))+numDecodings(s.substring(0,s.length()-1));
else if(s.charAt(s.length()-2)!='0' && s.charAt(s.length()-1)!='0' && Integer.parseInt(s.substring(s.length()-2,s.length()))>26)
return numDecodings(s.substring(0,s.length()-1));
else if(s.charAt(s.length()-2)=='0' && s.charAt(s.length()-1)!='0' && s.charAt(s.length()-3) <'3')
return numDecodings(s.substring(0,s.length()-1));
else if(s.charAt(s.length()-2)=='0' && s.charAt(s.length()-1)!='0' && s.charAt(s.length()-3) >='3')
return 0;
else if(s.charAt(s.length()-2)!='0' && s.charAt(s.length()-1)=='0' && Integer.parseInt(s.substring(s.length()-2,s.length()))<=26)
return numDecodings(s.substring(0,s.length()-2));
else return 0;
}
}
}
accepted code见:http://blog.csdn.net/linhuanmars/article/details/24570759