Я новичок в переполнении стека, и у меня есть лабораторный вопрос для класса программирования, который ускользал от меня. Задача требует, чтобы мы переместили элементы строки s в левые k раз. Например, если вход «Hello World» и 3, он будет выводить «lo WorldHel»). Он также должен работать относительно эффективно при очень больших значениях k. Это то, что я до сих пор:Смещение символов в строке слева
String cyclicLeftShift(String s, int k){
String result="";
for(int i=0;i<k;i++){
result = s.substring(1, s.length() - 1) +s.charAt(0);
s=result;
}
return s;
}
Моя главная проблема в том, что последний символ исходной строки продолжает перезаписываются последующими итераций цикла. Я пробовал множество перестановок, включая преобразование всего объекта в массивы (что нарушает ограничение эффективности в исходной задаче). Я чувствую, что есть только крошечная вещь, которую я не получаю, и мне было интересно, может ли кто-нибудь дать мне толчок в правильном направлении?
Спасибо!
Это работает отлично и с относительной эффективностью. Благодаря! – maniczebra
Хорошо, что мое решение сработало. :) – Jalai