这个作者给了一个图画的详解,看完会比较清晰一点。推荐:作者:wang_ni_ma
链接:https://leetcode-cn.com/problems/wildcard-matching/solution/liang-chong-shi-xian-xiang-xi-tu-jie-44-i7p61/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
个人微改:
public class wildcardMatching {
public static void main(String args[]) {
String s = "adceb";
String p = "*a?*b";
boolean a[][] = new boolean[1][1];
a[0][0] = isMatch(s,p);
System.out.println(a[0][0]);
}
static boolean isMatch(String s,String p) {
int m = s.length();
int n = p.length();
boolean[][] dp = new boolean[m+1][n+1];
dp[0][0]=true;
for(int i=1;i<=n;i++) {
if(p.charAt(i-1)=='*') {
dp[0][i]=true;
}else {
break;
}
}
for(int i=1;i<=m;i++) {
for(int j=1;j<=n;j++) {
if(p.charAt(j-1)=='*') {
dp[i][j]=dp[i-1][j]||dp[i][j-1];
}else if(p.charAt(j-1)=='?'||p.charAt(j-1)==s.charAt(i-1)) {
dp[i][j]=dp[i-1][j-1];
}
}
}
return dp[m][n];
}
}

本文解析了LeetCode中的 wildcard matching(通配符匹配)问题,通过实例说明如何使用动态规划实现,重点讲解了星号(*)和问号(?)在模式匹配中的处理。作者wang_ni_ma提供了一个清晰的图解教程。
171万+

被折叠的 条评论
为什么被折叠?



