zoukankan      html  css  js  c++  java
  • 正则表达式匹配

    class Solution {
    public:
        bool isMatch(string s, string p) {
            int m=s.size(),n=p.size();
            vector<vector<bool>> dp(m+1,vector<bool>(n+1,false));

            dp[0][0]=true;
            //init row
            for(int j=1;j<n+1;j++){
                if(j>1 && dp[0][j-2]==true && p[j-1]=='*'){
                    dp[0][j]=true;
                }
            }

            //init col

            for(int i=1;i<m+1;i++){
                for(int j=1;j<n+1;j++){
                    if(s[i-1]==p[j-1] || p[j-1]=='.'){
                        dp[i][j]=dp[i-1][j-1];
                    }
                    else if(p[j-1]=='*'){
                        if(s[i-1]!=p[j-2] && p[j-2]!='.'){
                            dp[i][j]=dp[i][j-2];
                        }
                        else{
                            dp[i][j]=dp[i][j-2] || dp[i][j-1] || dp[i-1][j];
                        }
                    }
                }
            }
            return dp[m][n];

        }
    };
  • 相关阅读:
    作业01(2020年10月10号)
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    第一次学c语言作业
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
  • 原文地址:https://www.cnblogs.com/zijidan/p/12434998.html
Copyright © 2011-2022 走看看