题解 | #字符串通配符#python顶楼解法(注释版)
字符串通配符
https://www.nowcoder.com/practice/43072d50a6eb44d2a6c816a283b02036
def fun(str1, str2):
'''
str1 代表一个带有通配符的字符串
str2 代表一个需要匹配的字符串
本函数用于判断str2是否匹配含通配符的str1
'''
if str1 == '' and str2 == '':
return True
elif str1 == '' and str2 != '':
return False
elif str1 != '' and str2 == '':
if str1.replace('*', '') == '':
return True
else:
return False
else:#str1,str2均不为空
m, n = len(str1), len(str2)
if str1[m - 1] == str2[n - 1] or (str1[m - 1] == '?' and str2.isalnum()):
return fun(str1[:m-1], str2[:n-1])
elif str1[m - 1] == '*':
return fun(str1[: m-1],str2) or fun(str1, str2[:n-1])#前者代表*不表示任何字符,后者代表*表示了任意一个字符
else:
return False
while True:
try:
str1, str2 = input().lower(), input().lower()
if fun(str1, str2):
print('true')
else:
print('false')
except:
break
大佬的代码,方便自己日后复习
查看5道真题和解析
vivo公司福利 368人发布
