day08-字符串part01

zqh2023 / 2023-08-16 / 原文

344. 反转字符串

详解

class Solution {
public:
    void reverseString(vector<char>& s) {
        int left = 0;
        int right = s.size() - 1;
        while(left <= right){
            // char tmp = s[left];
            // s[left] = s[right];
            // s[right] = tmp;
            swap(s[left], s[right]);
            left++;
            right--;
        }
    }
};

 

541. 反转字符串 II

class Solution {
public:
    string reverseStr(string s, int k) {
        //双指针
        int page = 0;
        int size = s.length();
        while(size > 0){
            int left = 2 * k * page;
            int right = left + k - 1;
            if(right >= s.length())
                right = s.length() - 1;
            cout << "left:"<<left<<",right:"<<right<<endl;
            while(left <= right){
                swap(s[left], s[right]);
                left++;
                right--;
            }
            size -= 2*k;
            page++;
        }
        return s;

    }
};