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 состоит из строчных английских букв и цифр
Решите эту задачу в браузере
Создайте бесплатный аккаунт — редактор Python, Java, JavaScript и Go, проверка на тестах за секунды.
Комментарии (0)
Зарегистрируйтесь или войдите, чтобы оставить комментарий
Пока нет комментариев. Будьте первым!