面试题19. 正则表达式匹配
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题19. 正则表达式匹配相关的知识,希望对你有一定的参考价值。
题目:
解答:
1 class Solution { 2 public: 3 bool isMatch(string s, string p) 4 { 5 s=" "+s;//防止该案例:"" "c*" 6 p=" "+p; 7 8 int m = s.size(); 9 int n = p.size(); 10 11 bool dp[m+1][n+1]; 12 memset(dp,false,(m+1)*(n+1)); 13 14 dp[0][0]=true; 15 16 for(int i=1;i<=m;i++) 17 { 18 for(int j=1;j<=n;j++) 19 { 20 if(s[i-1]==p[j-1] || p[j-1]==‘.‘) 21 { 22 dp[i][j]=dp[i-1][j-1]; 23 } 24 else if(p[j-1]==‘*‘) 25 { 26 if(s[i-1]!=p[j-2] && p[j-2]!=‘.‘) 27 { 28 dp[i][j]=dp[i][j-2]; 29 } 30 else 31 { 32 dp[i][j]=dp[i][j-1] || dp[i][j-2] || dp[i-1][j]; 33 34 } 35 } 36 } 37 } 38 return dp[m][n]; 39 } 40 };
以上是关于面试题19. 正则表达式匹配的主要内容,如果未能解决你的问题,请参考以下文章