004.给定两个字符串s1和s2,s1可能是任意字母,例如s1 = abccd。s2可以是任意字母,例如s2 = xyyz。和s1不同之处是,s2中有可能包含一个星号*,它可以匹配任意字符(一个或多个)。请编写一个函数 compare来匹配s1和s2,如果匹配则返回True,否则返回False
"""
给定两个字符串s1和s2,s1可能是任意字母,例如s1 = abccd。s2可以是任意字母,例如s2 = xyyz。和s1不同之处是,s2中有可能包含一个星号*,
它可以匹配任意字符(一个或多个)。请编写一个函数 compare(s1, s2) 来匹配s1和s2,如果匹配则返回True,否则返回False。
示例:
输入:abccd, abccd,输出:True
输入:abccd, abcd,输出:False
输入:abccd, ab*d,输出:True
输入:abccd,ab*cy,输出:False
"""
def compare(s1: str, s2: str) -> bool:
if '*' not in s2:
return s1 == s2
else:
list01 = s2.split('*')
star_temp = list01[0]
end_temp = list01[1]
return star_temp == s1[:len(star_temp)] and end_temp == s1[-len(end_temp)::]
if __name__ == '__main__':
print(compare("abccd", "abccd"))
print(compare("abccd", "abcd"))
print(compare("abccd", "ab*d"))
print(compare("abccd", "ab*cy"))
|