class Solution {
public:
bool match(const char *s, const char *p, char ch) {
do {
if (isMatch(s, p))
return true;
} while (*s && (*s++ == ch || ch == '.'));
return false;
}
bool isMatch(const char *s, const char *p) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (!*p) return !*s;
if (p[1] == '*') {
return match(s, p + 2, p[0]);
} else if (*s && (*p == '.' || *s == *p)) {
return isMatch(s + 1, p + 1);
} else {
return false;
}
}
};
Small Case: 4ms
Large Case: 84ms