class Solution {
public 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 j=1;j<=n;++j){
if(p.charAt(j-1)=='*'){
dp[0][j]=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)=='?'||s.charAt(i-1)==p.charAt(j-1)){
dp[i][j]=dp[i-1][j-1];
}
}
}
return dp[m][n];
}
}
哎,还是只能看答案,自己写出来。。。