5122. Реверс первых k символов

Easy 2 решили
Дана строка s и целое число k. Нужно преобразовать строку по такому правилу и вернуть результат.

Идите слева направо блоками длины 2k (позиции 0…2k−1, затем 2k…4k−1, и так далее):
• в каждом полном блоке переверните первые k символов, а следующие k символов оставьте как есть;
• если в конце осталось меньше чем 2k символов:
– остаток короче k — переверните весь остаток;
– остаток длины от k до 2k−1 — переверните только первые k, хвост не трогайте.

Число k может быть больше длины строки — тогда переворачивается вся строка.

s = "abcdefg", k = 2   (размер блока 2k = 4)

индексы:  0 1 2 3 | 4 5 6
строка:   a b c d | e f g

блок 1 [a b c d]: перевернуть первые 2 → [b a c d]
блок 2 [e f g]:   длина 3, k=2 ≤ 3 < 4 → перевернуть первые 2 → [f e g]

результат: "bacdfeg"

Примеры:

Вход: {"s": "abcdefg", "k": 2}
Выход: bacdfeg
Объяснение: Блоки длины 4. В «abcd» переворачиваем «ab» → «bacd»; в хвосте «efg» переворачиваем первые 2 → «feg». Итого bacdfeg.
Вход: {"s": "abcd", "k": 2}
Выход: bacd
Объяснение: Один полный блок длины 4: первые 2 символа → «ba», оставшиеся «cd» без изменений.
Вход: {"s": "abcdef", "k": 3}
Выход: cbadef
Объяснение: 2k=6, ровно один блок: первые 3 («abc») → «cba», следующие 3 («def») остаются. Итого cbadef.
Вход: {"s": "abc", "k": 4}
Выход: cba
Объяснение: k больше длины строки — переворачивается вся строка: abc → cba.
Вход: {"s": "abcdefgh", "k": 3}
Выход: cbadefhg
Объяснение: Блок «abcdef»: «abc»→«cba», «def» без изменений → «cbadef»; хвост «gh» короче k=3 — переворачивается целиком → «hg». Итого cbadefhg.

Ограничения:

1 <= s.length <= 10^4 1 <= k <= 10^4 s состоит из строчных английских букв и цифр

Теги:

Строки

Комментарии (0)

Зарегистрируйтесь или войдите, чтобы оставить комментарий

Пока нет комментариев. Будьте первым!