题解 | #字符串通配符#

字符串通配符

https://www.nowcoder.com/practice/43072d50a6eb44d2a6c816a283b02036

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define LEN 100

// 递归函数进行通配符匹配
int wildcardMatch(const char *pattern, const char *str) {
    if (*pattern == '\0') {
        return *str == '\0';
    }
    if (*pattern == '*') {
        // 如果是星号,尝试跳过星号并匹配剩余部分
        while (*pattern == '*') {
            pattern++;
        }
        if (*pattern == '\0') {
            return 1;
        }
        for (int i = 0; str[i]!= '\0'; i++) {
            if (wildcardMatch(pattern, str + i)) {
                return 1;
            }
        }
        return 0;
    } else if (*pattern == '?') {
        // 如果是问号,检查下一个字符是否为数字或字母
        return *str!= '\0' && (isalnum(*str) || islower(*str) || isupper(*str)) && wildcardMatch(pattern + 1, str + 1);
    } else {
        // 如果是普通字符,进行大小写不敏感的比较并继续匹配下一个字符
        return (tolower(*pattern) == tolower(*str)) && wildcardMatch(pattern + 1, str + 1);
    }
}

int main() {
    char s1[LEN], s2[LEN];
    while (scanf("%s\n%s", s1, s2)!= EOF) {
        if (wildcardMatch(s1, s2)) {
            printf("true\n");
        } else {
            printf("false\n");
        }
    }
    return 0;
}

全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
若怜君欢:驾驶证去掉吧,PPT啥的也去掉,本硕课程去掉,导师和研究方向去掉;加入本硕排名(好才写);技能栏加入你会的那些控制算法和滤波算法,这个比你会啥啥啥软件更有用;获奖写上去,奖学金啊,有没有专利啊之类的 电机和硬件这一块,属于传统制造业,制造业实习并不多。多投一些攒攒经验,有实习最好,没有也不需要焦虑(制造业实习其实除了转正,没多大用处) 最后,划重点,等秋招开始后,把你所有社交软件都发一份简历上去,并经常更新,找人内推你!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务