Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
"Unix Match. Part 1" solution in Clear category for Unix Match. Part 1 by iskenderunbtr
def unix_match(filename: str, pattern: str) -> bool:
if len(pattern)>len(filename) or "." not in filename :return False
if set( pattern.replace(".","") )=={"*"}: return True
newPattern=str()
for item in range(len(pattern)):
if pattern[item] == "?":
newPattern+=filename[item]
else:
newPattern+=pattern[item]
for item in newPattern.split("*"):
if item != "" and item not in filename:
return False
return newPattern.replace("*","") in filename
if __name__ == '__main__':
print("Example:")
print(unix_match('somefile.txt', '*'))
# These "asserts" are used for self-checking and not for an auto-testing
assert unix_match('somefile.txt', '*') == True
assert unix_match('other.exe', '*') == True
assert unix_match('my.exe', '*.txt') == False
assert unix_match('log1.txt', 'log?.txt') == True
assert unix_match('log12.txt', 'log?.txt') == False
assert unix_match('log12.txt', 'log??.txt') == True
print("Coding complete? Click 'Check' to earn cool rewards!")
June 25, 2020
Comments: