25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
def check_command(pattern, command):
|
|
text_length = len(command)
|
|
binary = "{0:b}".format(pattern).zfill(text_length)
|
|
if len(binary) > text_length:
|
|
return False
|
|
for i, char in enumerate(command):
|
|
if char.isnumeric() and binary[i] == "1":
|
|
return False
|
|
if char.isalpha() and binary[i] == "0":
|
|
return False
|
|
|
|
return True
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# These "asserts" using only for self-checking and not necessary for auto-testing
|
|
assert check_command(42, "12a0b3e4") == True, "42 is the answer"
|
|
assert check_command(101, "ab23b4zz") == False, "one hundred plus one"
|
|
assert check_command(0, "478103487120470129") == True, "Any number"
|
|
assert check_command(127, "Checkio") == True, "Uppercase"
|
|
assert check_command(7, "Hello") == False, "Only full match"
|
|
assert check_command(8, "a") == False, "Too short command"
|
|
assert check_command(5, "H2O") == True, "Water"
|
|
assert check_command(42, "C2H5OH") == False, "Yep, this is not the Answer"
|