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