541. 反轉字串 II(邏輯)1
阿新 • • 發佈:2020-12-11
技術標籤:LeetCode
給定一個字串 s 和一個整數 k,你需要對從字串開頭算起的每隔2k 個字元的前 k 個字元進行反轉。
如果剩餘字元少於 k 個,則將剩餘字元全部反轉。
如果剩餘字元小於 2k 但大於或等於 k 個,則反轉前 k 個字元,其餘字元保持原樣。
示例:
輸入: s = "abcdefg", k = 2
輸出: "bacdfeg"
解法一:邏輯
class Solution { public String reverseStr(String s, int k) { char[] a = s.toCharArray(); for (int start = 0; start < a.length; start += 2 * k) { int i = start, j = Math.min(start + k - 1, a.length - 1); while (i < j) { char tmp = a[i]; a[i++] = a[j]; a[j--] = tmp; } } return new String(a); } }