leetcode - Wildcard Matching
2013-12-11 11:24 张汉生 阅读(143) 评论(0) 编辑 收藏 举报
// token form http://blog.csdn.net/sunbaigui/article/details/8981369 // still need more check class Solution { //if strlen is used, then it will be TLE //iteration based solution public: bool isMatch(const char *s, const char *p) { // Start typing your C/C++ solution below // DO NOT write int main() function //int len1 = strlen(s); //int len2 = strlen(p); bool star = false; const char* starPtr = NULL; const char* savePtr = NULL; while(*s != '\0') { if(*p == '?') s++, p++; else if(*p == '*') { while(*p == '*') p++; p--; starPtr = p; p++; savePtr = s; star = true; } else { if(*s == *p) s++, p++; else { if(star == true) s = ++savePtr, p = starPtr+1;//depend on star else return false; } } } while(*p == '*') p++; return (*s == '\0' && *p == '\0'); } };