图片说明
图片说明

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];
}