30-Day LeetCoding Challenge Day 14: Perform String Shifts

Yu-Song Syu
2020 April 30-Day LeetCoding Challenge
2 min readApr 17, 2020

--

這一題要我們依輸入執行字串的「偏移」。

難度不高,比較需要思考的是「如何減少真正的字串操作」。這裡我採用的方式是先loop過一次input,算出所有位移在正負相抵後的「最終位移量」,才來做一次字串操作:

public class Solution {

public String stringShift(String s, int[][] shifts) {

int decimal = 0;
for (int[] shift : shifts) {
decimal += shift[1] * (shift[0] == 0 ? 1 : -1);
decimal %= s.length();
}

if (decimal < 0) {
decimal += s.length();
}

return s.substring(decimal) + s.substring(0, decimal);
}
}

--

--