**
描述
**
问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。
要求:
实现如下2个通配符:
*:匹配0个或以上的字符(字符由英文字母,数字0-9和 ‘.’ 组成,下同)
?:匹配1个字符
注意:匹配时不区分大小写。
输入:
通配符表达式;
一组字符串。
输出:
返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false
本题含有多组样例输入!
输入描述:
先输入一个带有通配符的字符串,再输入一个需要匹配的字符串
输出描述:
返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false
**
示例:
**
输入:
te?t*.*
txt12.xls
输出:
false
输入:
p*p*qp**pq*p**p***ppq
pppppppqppqqppqppppqqqppqppqpqqqppqpqpppqpppqpqqqpqqp
输出:
false
**
结果:
**
def func(a,b):
for j1 in b:
if (ord(j1)>=97 and ord(j1)<=122) or ord(j1)==63 or ord(j1)==42 or ord(j1)==46 or (ord(j1)>=48 and ord(j1)<=57):
pass
else:
return 'false'
if ('?' not in a) and ('*' not in a):
if a != b:
return 'false'
else:
return 'true'
else:
s=''
flag=0
for j in range(len(a)):
i=a[j]
if flag==0:
if i!='?' and i!='*':
s+=i
else:
flag=1
s=''
if s not in b:
return 'false'
else:
pass
else:
if i!='?' and i!='*':
s+=i
else:
flag=0
s=''
if s not in b:
return 'false'
else:
pass
y=len(a)-1
if j==y and s!='':
if s!=b[-len(s):]:
return 'false'
return 'true'
while True:
try:
a=input().strip().lower()
b=input().strip().lower()
print(func(a,b))
except:
break
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)