Update License Key Format
Задача: дан лиценизионный ключ, представленный в виде строки S. Строка разделена на N + 1 подгруппу, разделенных N дефисами. Также дано число K.
Необходимо преобразовать лицензионный ключ таким образом, чтобы каждая подгруппа содержала ровно K символов, за исключением 1й подгруппы, которая может быть короче K символов, но должна содержать хотя бы 1 символ. Также между 2мя любыми группами должно быть вставлен дефис. Все строчные буквы преобразовать в прописные.
Входные данные: строка S, состоящая только из букв английского алфавита, цифр и дефисов. K — целое число.
Вывод: преобразованная строка.
Примеры:
- S = “5F3Z-2e-9-w”, K = 4
Output: “5F3Z-2E9W” - S = “2–5g-3-J”, K = 2
Output: “2–5G-3J”
Разбор
Алгоритм довольно простой: главная особенность решения в том, что мы парсим строку с конца, т.к. по условиям задачи нам необходимо оставить 1й блок с K символов или меньше, смотрите 2й пример.
Все детали реализации смотрите в коде!
Реализация
https://gist.github.com/unilecs/587aedf4cb17a00fb0c12d1227c371ee