LeetCode(44)

复制代码
class Solution {
public:
    bool isMatch(string s, string p) {
        memset(dp,false,sizeof(dp));
        int ns = s.size(),np = p.size();
        bool flag;
        for(int i=1;i<ns;i++){
            dp[i][0] = false;
        }
        dp[0][0] = true;
        for(int i=0;i<np;i++){
            flag = true;
            for(int j=0;j<=i;j++){
                if(p[j]!='*'){
                    flag = false;
                    break;
                }
            }
            if(flag)dp[0][i+1] = true;
            else    dp[0][i+1] = false;
        }
        for(int j=0;j<np;j++){
            if(p[j]=='*'){
                for(int i=0;i<ns;i++){
                    dp[i+1][j+1] = dp[i][j]||dp[i+1][j]||dp[i][j+1];
                }
            }
            else if(p[j]=='?'){
                for(int i=0;i<ns;i++){
                    dp[i+1][j+1] = dp[i][j];
                }
            }
            else{
                for(int i=0;i<ns;i++){
                    if(s[i]==p[j]){
                        dp[i+1][j+1] = dp[i][j];
                    }
                    else{
                        dp[i+1][j+1] = false;
                    }
                }
            }
        }
        // for(int i=0;i<=ns;i++){
        //     for(int j=0;j<=np;j++){
        //         cout<<dp[i][j]<<" ";
        //     }
        //     cout<<endl;
        // }
        return dp[ns][np];
    }
private:
    int dp[1030][1030];
};
复制代码

 

posted @   智人心  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示