//from anniekim, do it in a natural way
bool isMatch(const char *s, const char *p) {
const char *sBackup = NULL, *pBackup = NULL;
while (*s != '\0') {
if (*p == '?' || *s == *p) {
s++;
p++;
} else if (*p == '*') {
while (*p == '*') p++;
if (*p == '\0') return true;
sBackup = s;
pBackup = p;
} else {
if (!sBackup) return false;
s = ++sBackup;
p = pBackup;
}
}
while (*p == '*') p++;
return *s == '\0' && *p == '\0';
}
No comments:
Post a Comment