class Solution {
bool matchCore(const string& str,const string& pattern){
if(str.empty()&&pattern.empty())
return true;
if(!str.empty()&&pattern.empty())
return false;
if(pattern[1]=='*'){
if(pattern[0]==str[0]||(pattern[0]=='.'&&!str.empty()))
//进入下一状态
return matchCore(str.substr(1),pattern.substr(2))
//留在当前状态
||matchCore(str.substr(1), pattern)
//忽略一个'*'
||matchCore(str, pattern.substr(2));
else
//忽略一个'*'
return matchCore(str, pattern.substr(2));
}
if(str[0]==pattern[0]||(pattern[0]=='.'&&!str.empty()))
return matchCore(str.substr(1), pattern.substr(1));
return false;
}
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @param pattern string字符串
* @return bool布尔型
*/
bool match(string str, string pattern) {
// write code here
return matchCore(str,pattern);
}
};