What base is this number in?
Python, 27 22 bytes
lambda s:(max(s)-8)%39
This requires the input to be a bytestring (Python 3) or a bytearray (Python 2 and 3).
Thanks to @AleksiTorhamo for golfing off 5 bytes!
Test it on Ideone.
How it works
We begin by taking the maximum of the string. This the code points of letters are higher than the code points of digits, this maximal character is also the maximal base 36 digit.
The code point of '0' – '9' are 48 – 57, so we must subtract 48 from their code points to compute the corresponding digits, or 47 to compute the lowest possible base. Similarly, the code points of the letters 'a' – 'z' are 97 – 122. Since 'a' represents the digit with value 10, we must subtract 87 from their code points to compute the corresponding digits, or 86 to compute the lowest possible base. One way to achieve this is as follows.
The difference between 97 and 58 (':', the character after '9') is 39, so taking the code points modulo 39 can achieve the subtraction. Since 48 % 39 = 9, and the desired result for the character '0' is 1, we first subtract 8 before taking the result modulo 39. Subtracting first is necessary since otherwise 'u' % 39 = 117 % 39 = 0.
c n n-8 (n-8)%39
0 48 40 1
1 49 41 2
2 50 42 3
3 51 43 4
4 52 44 5
5 53 45 6
6 54 46 7
7 55 47 8
8 56 48 9
9 57 49 10
a 97 89 11
b 98 90 12
c 99 91 13
d 100 92 14
e 101 93 15
f 102 94 16
g 103 95 17
h 104 96 18
i 105 97 19
j 106 98 20
k 107 99 21
l 108 100 22
m 109 101 23
n 110 102 24
o 111 103 25
p 112 104 26
q 113 105 27
r 114 106 28
s 115 107 29
t 116 108 30
u 117 109 31
v 118 110 32
w 119 111 33
x 120 112 34
y 121 113 35
z 122 114 36
Python, 25 bytes
lambda x:int(max(x),36)+1
Defines a lambda that takes the string x
. Finds the largest digit in the string (sorted with letters above digits, by python's default), and converts to base 36. Adds 1, because 8
is not in base 8.
Jelly, 4 bytes
ṀØBi
Requires uppercase. Try it online! or verify all test cases.
How it works
ṀØBi Main link. Arguments: s (string)
Ṁ Yield the maximum of s.
ØB Yield "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".
i Find the 1-based index of the maximum in that string.