Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Number Base by jszymk
def numbase(i, r):
if not i.isalpha():
if int(i) >= r:
return -1
return int(i)
else:
if ord(i)-ord("A")+10 >= r:
return -1
return ord(i)-ord("A")+10
def checkio(str_number, radix):
p = 1
ret = 0
for i in str_number[::-1]:
ret += numbase(i, radix)*p
if numbase(i, radix) == -1:
return -1
p *= radix
return ret
#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("ASD", 15) == -1, "B > A > 10"
Oct. 23, 2016