参考剑指offer
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @param pattern string字符串
* @return bool布尔型
*/
bool matchCore(string str, string pattern){
if(str[0] == '\0' && pattern[0] == '\0')
return true;
if(str[0] != '\0' && pattern[0] == '\0')
return false;
if(pattern[1] == '*'){
if(pattern[0] == str[0] || (pattern[0] == '.' && str[0] != '\0')){
return matchCore(str.substr(1), pattern.substr(2)) || /* *前面字符出现1次*/
matchCore(str.substr(1), pattern) || /* *前面字符出现2次*/
matchCore(str, pattern.substr(2));/* *前面字符出现0次*/
}
else{
return matchCore(str, pattern.substr(2));
}
}
if(pattern[0] == str[0] || (pattern[0] == '.' && str[0] != '\0'))
return matchCore(str.substr(1), pattern.substr(1));
return false;
}
bool match(string str, string pattern) {
// write code here
if(str.length() == 0 && pattern.length() == 0){
return true;
}
return matchCore(str, pattern);
}
};


京公网安备 11010502036488号