Leetcode 10 比较难的动态规化正则表达式匹配

    技术2024-11-15  22

     

    要利用递推性质,将最后一个表达式优化成如下形式:

    转移方程的推导,转移方程的化简 

    class Solution { public: bool isMatch(string s, string p) { s = ' '+s, p = ' '+p; // 最开头放入一个哨兵,避免边界 int n = s.size(), m = p.size(); vector<vector<bool>> dp(n,vector<bool>(m,false)); dp[0][0] = true; for(int i=0;i<n;i++){ for(int j=1;j<m;j++){ if(i&&(s[i]==p[j]||p[j]=='.')) dp[i][j] = dp[i-1][j-1]; else if(p[j]=='*'){ dp[i][j] = dp[i][j-2] || (i&&dp[i-1][j]&& (s[i]==p[j-1] || p[j-1] == '.')); } } } return dp[n-1][m-1]; } };

     

    Processed: 0.009, SQL: 9