题解 | #字符串通配符#

字符串通配符

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

s1 = input()
s2 = input()
m = len(s1)
n = len(s2)
dp = [[False for j in range(n + 1)] for i in range(m + 1)]
dp[0][0] = True
# 处理第0行()
for j in range(1, n + 1):
    dp[0][j] = False
# 处理第0列(特别注意第0列的处理方式)
for i in range(1, m + 1):
    if s1[i - 1] == "*":
        dp[i][0] = True
    else:
        break
# 处理其他值
for i in range(1, m + 1):
    for j in range(1, n + 1):
        if s1[i - 1].lower() == s2[j - 1].lower():  # 注意这里一定统一大写或者统一小写,才好比较(不区分时会报错)
            dp[i][j] = dp[i - 1][j - 1]
        if s1[i - 1] == "?" and s2[j - 1].isalnum():  # isalnum()表示所有字符均为字母或者数字
            dp[i][j] = dp[i - 1][j - 1]
        if s1[i - 1] == "*":
            dp[i][j] = dp[i - 1][j] or dp[i][j - 1]
if dp[m][n]:
    print("true")
else:
    print("false")

全部评论

相关推荐

找个工作 学历是要卡的 要求是高的 技能不足是真的 实习经验是0的 简历无处可写是事实的 钱不好赚是真的 想躺平又不敢躺 也不甘心躺 怕自己的灵感和才华被掩埋甚至从未被自己发现 又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-01 17:14
中北大学 Java
兄弟们是真是假
牛客46374834...:我在boss上投java岗从来没成功过
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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