主题思想: 以后不再手写字符串转 int 了 ,可以用Integer.valueOf(String)
动态规划:
class Solution {
public int numDecodings(String s) {
if(s==null||s.length()==0) return 0;
int n=s.length();
int[] dp=new int[n+1];
// because 12 may be dp[2]+=dp[0]
//so dp[0] init 1
dp[0]=1;
dp[1]=s.charAt(0)!='0'?1:0;
for(int i=2;i<=n;i++){
int first=Integer.valueOf(s.substring(i-1,i));
int second=Integer.valueOf(s.substring(i-2,i));
if(first>=1&&first<=9) dp[i]+=dp[i-1];
if(second>=10&&second<=26) dp[i]+=dp[i-2];
}
return dp[n];
}
}