Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Number Base by Vojtas
def checkio(str_number: str, radix: int) -> int:
max_digit=max(str_number, key=lambda x: ord(x))
if ord(max_digit) in range(48,58):
if ord(max_digit)-48>=radix:
return -1
else :#ord(max_digit) in range(65,91
if ord(max_digit)-55 >=radix :
return -1
result=0
for i in range(len(str_number)):
if str_number[i].isdecimal():
result+=int(str_number[i]) *(radix**(len(str_number)-1-i))
#print(result,1)
else:
#print(result)
result +=( ord(str_number[i])-55) * (radix ** (len(str_number)-1-i ))
#print(result,ord(str_number[i])-55,radix ** (len(str_number)-1-i ))
#print(result)
return result
#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!")
Nov. 17, 2018