Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
by the power of radix! solution in Clear category for Number Base by LewisFogden
def checkio(str_number, radix):
all_digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
radix_digits = all_digits[:radix]
int_value = 0
for pwr,digit in enumerate(reversed(str_number)):
try:
int_value += radix_digits.index(digit) * (radix ** pwr)
except ValueError:
return -1
return int_value
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio("AF", 16) == 175, "Hex"
assert checkio("101", 2) == 5, "Bin"
assert checkio("101", 5) == 26, "5 base"
assert checkio("Z", 36) == 35, "Z base"
assert checkio("AB", 10) == -1, "B > A > 10"
Oct. 22, 2014
Comments: