3.7WildcardMatching

来源:互联网 发布:淘宝红包图片 编辑:程序博客网 时间:2024/04/30 09:31

Notes: Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. '*' Matches any sequence of characters (including the empty sequence). The matching should cover the entire input string (not partial). The function prototype should be: bool isMatch(const char *s, const char *p) Some examples: isMatch("aa","a") ? false isMatch("aa","aa") ? true isMatch("aaa","aa") ? false isMatch("aa", "*") ? true isMatch("aa", "a*") ? true isMatch("ab", "?*") ? true isMatch("aab", "c*a*b") ? false  Solution: ... */

bool machcore(char *str, char *pattern){if (str == NULL || pattern == NULL)return false;if (*str == '\0'&&*pattern == '\0')return true;if ((*str != '\0'&&*pattern == '\0'))return false;if ((*str == '\0'&&*pattern != '\0')){while (*pattern!='\0'){if (*pattern == '*')pattern++;elsereturn false;}return true;} if (*str == *pattern || *pattern == '?'&&*str != '\0')return machcore(str + 1, pattern + 1);if (*pattern == '*'&&*str != '\0'){if (*(pattern + 1) == '*')pattern++;if (*(pattern + 1) =='\0')return true;if (*str == *(pattern + 1) || *(pattern + 1) == '?')return machcore(str + 1, pattern + 2);} return false;}


0 0