1,初始化第一个位置,为0和非0 2,判断当前位是非可以和前一位组合:在10-26 的可以组合

public:
    /**
     * 解码
     * @param nums string字符串 数字串
     * @return int整型
     */
    int solve(string a) {
        // write code here
        int dp[100000];
        if(a[0]!='0') dp[0]=1;
        else dp[0]=0;
        for(int i=1;i<a.size();i++){
            int pre=a[i-1]-'0';
            int now=a[i]-'0';
            int sum=pre*10+now;
            if(now!=0)    dp[i]=dp[i-1];
            if(sum>=10&&sum<=26){
                if(i==1) dp[i]+=1;
                else dp[i]+=dp[i-2];
            }
        }
        return dp[a.size()-1];
    }
};