代码随想录 Leetcode541. 反转字符串 II

发布时间:2024年01月16日

题目:


代码(首刷自解 2024年1月16日):

class Solution {
public:
    void reverse(string& s,int left,int right) {
        char temp;
        while (left < right) {
            temp = s[left];
            s[left] = s[right];
            s[right] = temp;
            ++left;
            --right;
        }
        return;
    }
    string reverseStr(string s, int k) {
        int n = s.size();
        int count = 0;
        for (int i = 0; i < n; ++i) {
            ++count;
            if(count == 2 * k){
                int left = (i + 1) - 2 * k, right = (i + 1) - k - 1;
                reverse(s,left,right);
                count = 0;
            } else if (i == n - 1 && count < k) {
                int left = (i + 1) - count, right = i;
                reverse(s,left,right);
            } else if (i == n - 1 && count >= k && count < 2 * k) {
                int left = (i + 1) - count, right = (i + 1) - count + k - 1;
                reverse(s,left,right);
            }
        }
        return s;
    }
};

文章来源:https://blog.csdn.net/qq_52313711/article/details/135621568
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。