Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Parity Bit Generator by nomis517
def checkio(numbers):
"""
Translates numbers and returns a message.
Removes the numbers which don't respect
the parity bit.
"""
message = ""
for num in numbers:
bin_num = bin(num)[2:]
parity_bit = bin_num[-1]
original_bin_num = bin_num[:-1]
if original_bin_num.count('1') % 2 == int(parity_bit):
message += chr(int(original_bin_num, 2))
return message
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio([135, 134, 124, 233,
209, 81, 42, 202,
198, 194, 229, 215,
230, 146, 28, 210,
145, 137, 222, 158,
49, 81, 214, 157]) == "Checkio"
assert checkio([144, 100, 200, 202,
216, 152, 164, 88,
216, 222, 65, 218,
175, 217, 248, 222,
171, 228, 216, 205,
254, 201, 193, 220]) == "Hello World"
Nov. 14, 2015
Comments: