30-Day LeetCoding Challenge Day 14: Perform String Shifts
Published in
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);
}
}