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];

        }
    };
  • 相关阅读:
    Chapter 1 Secondary Sorting:Introduction
    Apache Spark : RDD
    Apache Spark : Introduction
    Python 变量和数据类型
    CMP3$
    idea实现eclipse工作空间的思路
    Oracle 数据字典查询
    sql左连接、右连接、内连接、不写连接符号
    ADB
    Serverless
  • 原文地址:https://www.cnblogs.com/zijidan/p/12434998.html
Copyright © 2011-2022 走看看