我尝试了两个IDE,即Clion和Xcode,我得到了相同的结果。 即使我使用stepOver,调试器也会再次进入isMatch函数。我已成功使用了' stepOver'在其他功能的情况下,但我不确定它是否适用于递归调用的预期方式。有人可以帮我弄这个吗?
bool isMatch(string s, string p) {
//Base case
if(s.length() == 0 && p.length() == 0)
return true;
else if(p[1] == '*') {
int i = 0;
for (; (s[i] == p[0] || p[0] == '.') && i<s.length() ; i++) {
string temp1 = s.substr(i);
string temp2 = !p.length()? "" : p.substr(2);
if (isMatch(temp1, temp2))
return true;
}
if( isMatch(s.substr(i), !p.length()? "" : p.substr(2) ))
return true;
return false;
}
else
return (s[0] == p[0] || p[0] == '.') && isMatch(s.substr(1), p.substr(1));
}