Get Excel column number
Задача: в офис программе Excel столбцы обозначаются буквенными кодами (см. нумерацию ниже).
A -> 1
B -> 2
C -> 3
…
Z -> 26
AA -> 27
AB -> 28
…
Необходимо реализовать алгоритм вывода номера столбца по его буквенному коду.
Входные данные: строка размером от 1 до 7 символов. Считайте, что входная строка является валидным значением для обозначения столбца Excel.
Вывод: номер столбца
Примеры:
- “A”
Output: 1 - “AB”
Output: 28
Разбор
Допустим, мы хотим получить значение колонки “AZZC”.
Это можно разбить как:
‘A ***’ + ‘Z **’ + ‘Z *’ + ‘C’
где * — означает блок из 1 символа; ** — означает блок из 2 символов и т.д.
Очевидно, что в блоке односимвольных колонок 26¹ вариантов. В блоке, состоящем из 2 символов, уже 26² варианта и т.д.
Рассмотрим пример “AZZC”:
- Начнем с последнего символа ‘C’:
‘C’: 3 * 26⁰ = 3
number = 3; - Далее рассматриваем 2й символ с конца ‘Z*’:
‘Z*’: 26 * 26¹ = 676
number = 3 + 676 - ‘Z**’:
‘Z**’: 26 * 26² = 17576
number = 679 + 17576 = 18255 - ‘A***’
‘A***’: 1 * 26³ = 17576
number = 18255 + 17576 = 35831
Number = 35831
Реализация
https://gist.github.com/unilecs/fa83fef7e4d252e5f55de231d146baef