344. 反转字符串
题目

思路
我的思路是,用双指针,一个指左,一个指右,循环互换即可。
代码随想录的更简单精妙,直接用一个for循环搞定,里面用swap来互换。
代码
我的解法
class Solution {
public:
    void reverseString(vector<char>& s) {
        int left = 0, right = s.size() - 1;
        while (left < right) {
            char tmp = s[left];
            s[left] = s[right];
            s[right] = tmp;
            left++;
            right--;
        }
    }
};随想录解法
class Solution {
public:
    void reverseString(vector<char>& s) {
        for (int i = 0, j = s.size() - 1; i < j; i++, j-- )
            swap(s[i], s[j]);
    }
};541. 反转字符串 ll
题目

思路
主要是注意剩下的字符数量,然后这里用了库函数reverse,其实也可以自己实现,和上一题的代码差不多。
代码
class Solution {
public:
    string reverseStr(string s, int k) {
        for (int i = 0; i < s.size(); i += 2 * k) {
            if (i + k <= s.size()) {
                reverse(s.begin() + i, s.begin() + i + k);
            }
            else {
                reverse(s.begin() + i, s.end());
            }
        }
        return s;
    }
};


















