LeetCode 91. 解码方法

发布时间 2023-04-12 16:35:11作者: 穿过雾的阴霾
class Solution {
public:
    int f[110];
    bool check(char a,char b)
    {
        if(a>='1'&&a<='9'&&b>='0'&&b<='9')
        {
            int c=a-'0';
            c=c*10+(b-'0');
            if(c>=1&&c<=26) return true;
        }
        return false;
    }
    int numDecodings(string s) {
        int n=s.size();//n一定在更改s之前赋值
        s=' '+s;
        f[0]=1;
        for(int i=1;i<=n;i++)
        {
            if(s[i]>='1'&&s[i]<='9')
                f[i]=f[i-1];
            if(i>=2&&check(s[i-1],s[i]))
                f[i]+=f[i-2];  
        }
        return f[n];
    }
};