leetcode上wild match# JobHunting - 待字闺中
g*e
1 楼
class Solution {
public:
bool isMatch(const char *s, const char *p) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(*s=='\0'){
if(*p=='\0')
return true;
else if(*p=='*')
return isMatch(s, p+1);
else
return false;
}
else{
if(*p=='\0')
return false;
else if(*p=='?' || *p==*s)
return isMatch(s+1,p+1);
else if(*p=='*')
return isMatch(s+1,p) || isMatch(s,p+1);
else
return false;
}
}
};
这是我的代码,通过了small judge, 但是large judge的时候exceeded time limit。
大家帮忙看看哪里可以优化?谢谢啦
另外 '\0'这个char是不是就等于0? 可以写成(*s==0)来判断吗?
public:
bool isMatch(const char *s, const char *p) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(*s=='\0'){
if(*p=='\0')
return true;
else if(*p=='*')
return isMatch(s, p+1);
else
return false;
}
else{
if(*p=='\0')
return false;
else if(*p=='?' || *p==*s)
return isMatch(s+1,p+1);
else if(*p=='*')
return isMatch(s+1,p) || isMatch(s,p+1);
else
return false;
}
}
};
这是我的代码,通过了small judge, 但是large judge的时候exceeded time limit。
大家帮忙看看哪里可以优化?谢谢啦
另外 '\0'这个char是不是就等于0? 可以写成(*s==0)来判断吗?