1. 动态规划
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; for(int i=1;i<=n&&p[i-1]==‘*‘;++i) { dp[0][i]=true; } for(int i=1;i<=m;++i) { for(int j=1;j<=n;++j) { if(p[j-1]==‘*‘) { dp[i][j]=dp[i][j-1]||dp[i-1][j]; } else { dp[i][j]=(p[j-1]==‘?‘||s[i-1]==p[j-1])&&dp[i-1][j-1]; } } } return dp[m][n]; } };
原文:https://www.cnblogs.com/LiuQiujie/p/12715754.html