美文网首页Leetcode
LeetCode #10 正则表达式匹配

LeetCode #10 正则表达式匹配

作者: HU兔兔 | 来源:发表于2020-02-05 22:14 被阅读0次
class Solution {
public:
    bool isMatch(string s, string p) {
        bool dp[s.size()+1][p.size()+1];
        int i,j;
        i=1;
        j=1;
        dp[0][0]=true;
        while(j<=p.size()){
              dp[0][j]=p[j-1]=='*'?dp[0][j-2]:false;
              j++;
        }
        while(i<=s.size()){
            dp[i][0]=false;
            j=1;
            while(j<=p.size()){
                if(s[i-1]==p[j-1]||p[j-1]=='.'){
                    dp[i][j]=dp[i-1][j-1];
                }
                else if(p[j-1]=='*'){
                    if(p[j-2]=='.'||p[j-2]==s[i-1]){
                        dp[i][j]=dp[i][j-2]||dp[i-1][j];
                    }
                    else{
                        dp[i][j]=dp[i][j-2];
                    }
                }
                else{
                    dp[i][j]=false;
                }
                j++;
            }
            i++;
        }
        return dp[s.size()][p.size()];
    }
};

相关文章

网友评论

    本文标题:LeetCode #10 正则表达式匹配

    本文链接:https://www.haomeiwen.com/subject/ekvexhtx.html