Reverse String II (Easy Google)
Input: s = "abcdefg", k = 2
Output: "bacdfeg"Basic Idea:
class Solution { // reverse k characters from start,如果长度不足k,则都reverse void reverseK(string& s, int start, int k) { int end = start + k - 1 < s.size() ? start + k - 1 : s.size() - 1; while (start < end) { swap(s[start++], s[end--]); } } public: string reverseStr(string s, int k) { if (s.size() <= 1) return s; int idx = 0; while (idx < s.size()) { reverseK(s, idx, k); idx += 2 * k; } return s; } };