Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Number Base by v.pligin
def checkio(str_number: str, radix: int) -> int:
mass = []
#making an array of ASCII codes of numbers
for i in str_number:
mass.append(ord(i))
#converting ASCII numbers in numbers by order so A is 10 and Z is 35
for i in range(len(mass)):
if mass[i] <= 57:
mass[i] = mass[i]-48
if mass[i] >= 65:
mass[i] = mass[i]-55
#checking for correct radix
if radix <= max(mass):
return -1
#converting
res = 0
for i in range(len(mass)):
res = res + mass[i]*(radix**(len(mass)-1-i))
return res
#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"
print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")
Oct. 11, 2018