LeetCode第10题: isMatch(C语言)

上一题:LeetCode第9题: isPalindrome(C语言)

思路:动态规划 + 递归

bool isMatch(char* s, char* p) {
    if (*p == '\0') return *s == '\0';
  
    if (*(p + 1) != '*') { 
        if (*p == *s || (*p == '.' && *s != '\0'))
            return isMatch(s + 1, p + 1);
        else
            return false;
    } 
    else { 
        while (*p == *s || (*p == '.' && *s != '\0')) {  
            if (isMatch(s, p + 2))
                return true;
            s++;
        }
        return isMatch(s, p + 2);
    }
}

本系列文章,旨在打造LeetCode题目解题方法,帮助和引导同学们开阔学习算法思路,由于个人能力和精力的局限性,也会参考其他网站的代码和思路,如有侵权,请联系本人删除。
下一题:LeetCode第11题: maxArea(C语言)

你可能感兴趣的:(LeetCode第10题: isMatch(C语言))