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

        }
    };
  • 相关阅读:
    vue2.0是不支持通过下标来更改数组的,无法做到响应式
    C# 深拷贝 Bitmap对象示例
    vscode终端中文乱码
    TkbmMemTable使用总结
    openssl 证书概念介绍
    openssl源码介绍
    python变量赋值特性
    openssl安装
    github开源协议选择
    NLP 多分类神经网络
  • 原文地址:https://www.cnblogs.com/zijidan/p/12434998.html
Copyright © 2011-2022 走看看