题目
编写函数实现通配符的匹配,其中通配符为“?”,表示匹配任意一个字符,若匹配成功返回字符串的匹配位置(起始为0)。如“there”和“?re”是匹配的,返回2。若匹配失败,返回-1。
格式
输入格式
第一行为原字符串,第二行为目标字符串
输出格式
返回匹配的下标位置,失败返回-1。
样例1
输入:
there
?re
输出:
2
程序
思路:暴力+模拟
def main():
#code here
s1= input().strip()
s2 =input().strip()
le_s1 =len(s1)
le_s2 =len(s2)
flag = False
index =0
# 双层循环,暴力遍历所有等长字符串是否匹配
for i in range(0,le_s1-le_s2+1):
for j in range(0,le_s2):
if s1[i+j]==s2[j] or s2[j]=="?":
continue
elif s1[i+j] != s2[j]:
# 退出,直接进入到 i 的下一个
break
# 判断最后一个字符是否匹配
if j==le_s2-1 and (s1[i+j]==s2[j] or s2[j]=="?"):
flag =True
index = i
print(index)
return
else:
continue
if not flag:
print(-1)
if __name__ == '__main__':
main();