目录
简介:
动态规划
在进行动态规划之前需要确定边界。
题目:
题解:
class Solution {
public boolean isMatch(String s, String p) {
int sl = s.length();
int pl = p.length();
boolean[][] rd = new boolean[sl+1][pl+1];
rd[0][0] = true;
char[] sc = s.toCharArray();
char[] pc = p.toCharArray();
for(int j = 1; j < pl+1; j++){
if(pc[j - 1] == '*') rd[0][j] = rd[0][j-1];
}
for(int i = 1; i < sl+1; i++){
for(int j = 1; j < pl+1; j++){
if(sc[i-1] == pc[j-1] || pc[j-1] == '?')
rd[i][j] = rd[i-1][j-1];
else if(pc[j-1] == '*')
rd[i][j] = rd[i][j-1] || rd[i-1][j];
}
}
return rd[sl][pl];
}
}
推荐阅读
本题题解:
动态规划模版: