自学内容网 自学内容网

代码随想录-DAY⑦-字符串——leetcode 344 | 541 | 151

344

思路

没啥好说的,
双指针头尾交换,
相遇结束。

时间复杂度:O(n)
空间复杂度:O(1)

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

541

思路

下标 i 一次跳过2k个节点,
反转每个下标从 2k 的倍数开始的,长度为 k 的子串,
若该子串长度不足 k,则反转整个子串。

时间复杂度:O(n)
空间复杂度:O(1)

代码
class Solution {
public:
    string reverseStr(string s, int k) {
        int n = s.length();
        for(int i=0; i<n; i+=2*k){
            reverse(s.begin()+i, s.begin()+min(i+k, n));
        }
        return s;
    }
};

151

思路

时间复杂度:O(n)
空间复杂度:O(1)

代码
在这里插入代码片

原文地址:https://blog.csdn.net/weixin_43160551/article/details/140336759

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!