Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Number Base by aieozn
def checkio(str_number, radix):
tab=[];
suma=0;
for i in range(65, 91):
tab.append(chr(i));
znaki=[];
najw=0;
for x in range(len(str_number)):
if ord(str_number[x])>=65 and ord(str_number[x])<=90:
znaki.append(ord(str_number[x])-55);
if (ord(str_number[x])-55)>najw:
najw=(ord(str_number[x])-55);
else:
znaki.append(int(str_number[x]));
if int(str_number[x])>najw:
najw=int(str_number[x]);
if najw>=radix:
return -1
for i in range(0, len(znaki)):
akt=znaki[-(i+1)];
suma=suma+(radix**i)*akt;
return suma;
#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"
Nov. 26, 2016