知识点
动态规划
解题思路
解法一:分类讨论
class Solution {
public:
bool isMatch(string& s, string& p) {
int i,j=0;
int flag=0;// to how many *
if(s.size()==0 && p.size()==0){
return true;
}
if(p.size()==0){
return false;
}
for(i=0;i<p.size();i++){
if(p[i]=='*'){
flag++;
}
}
if(flag==0){
// there is no * in string
if(s.size()!=p.size()){
return false;
}
for(i=0;i<s.size();i++){
if(s[i]!=p[i] && p[i]!='*'){
return false;
}
}
if(i==s.size()){
return true;
}
}
// has flag '*' 这后面就是不会做了。
if(flag>0){
for(i=0;i<s.size();){
if(p[j]=='*'){
}else{
if(s[i]==p[i]){
}
}
}
}
return true;
}
};
小结
所谓算法,就是给问题提供思考的角度和范式。
还是要加强 动态规划的