Rotate String

Problem #31

Tags: strings arrays classical

Who solved this?

Back to English version

Вращение строки на K символов означает операцию при которой эти символы отрезаются от начала и добавляются в конец. Если K отрицательно, символы наоборот переносятся из конца в начало.

Входные данные содержат количество тест-кейсов в первой строке.
Следующие строки содержат число K и следом за ним сам текст S отделённый пробелом.
Текст S содержит только маленькие латинские буквы. K не превышает половины длины S по модулю.
Ответ должен содержать строки после осуществления "вращения" на K в соответствии с вышеуказанным правилом.

входные данные:
2
3 forwhomthebelltolls
-6 verycomplexnumber

ответ:
whomthebelltollsfor numberverycomplex

Задача во многих языках легко решается созданием новой строки из двух подстрок старой. Однако если вы хотите поломать голову, постарайтесь осуществить вращение "на месте", т.е. представив строку как массив символов и обменивая их внутри этого массива - не выделяя памяти под новую строку. Эта головоломка разрешима с помощью цикла и единственной вспомогательной переменной!

You need to login to get test data and submit solution.