Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Number Base by sts10131
def toDecimal(str):
if str>="A" and str<="Z":
return ord(str)-55
if str>="0" and str<="9":
return int(str)
def checkio(str_number, radix):
x=0;
y=0;
length=len(str_number)-1
for i in range(length,-1,-1):
y=toDecimal(str_number[i])
if y>=radix:
return -1
x+=y*(radix**(length-i))
return x
#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"
Dec. 27, 2016