int numDecodings(char * s){ int len = strlen(s); int ans [len+1]; ans[0] = 1; int flag ; int i ; for(i = 1 ; i <= len ; i++){ //从1开始方便处理 省了很多步骤 ans[i] = 0; if(s[i-1]!='0')ans[i] += ans[i-1]; if(i>=2){ flag = 10 * (s[i-2]-'0') + s[i-1]-'0'; if(flag>=10&&flag<=26)ans [i] += ans[i-2]; } } return ans[len]; }