Given a column title as appear in an Excel sheet, return its corresponding column number.
Letter | Number |
---|---|
a | 1 |
b | 2 |
c | 3 |
... | ... |
z | 26 |
aa | 27 |
ab | 28 |
Example 1: Input: "a" Output: 1
Example 2: Input: "ab" Output: 28
Example 3: Input: "zy" Output: 701
let explode s = List.init (String.length s) (String.get s)
;;
let char2digits l =
let t1 = explode l in
let t2 = List.map (fun x-> Char.code x - (Char.code 'a') + 1) t1 in
let t3 = List.fold_left (fun x y -> x * 26 + y) 0 t2 in
t3
;;
let () = assert (char2digits "a" = 1);;
let () = assert (char2digits "b" = 2);;
let () = assert (char2digits "ab" = 28);;
let () = assert (char2digits "zy" = 701);;