代码随想录-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)!