代码随想录跟刷Day8
Leetcode344.反转字符串
直接双指针交换就行了
class Solution {
public:
void reverseString(vector<char>& s) {
int left = 0, right = s.size() - 1;
while(right > left){
char temp = s[right];
s[right] = s[left];
s[left] = temp;
right--;
left++;
}
}
};
Leetcode541.反转字符串Ⅱ
需要注意s.length()是unsigned int,无符号数,用s.length() - num去判断有可能导致数据溢出,需要避免
class Solution {
public:
string reverseStr(string s, int k) {
for(int i = 0; i < s.length(); i += 2 * k){
int left = i, right = i + k > s.length() ? s.length() - 1: i + k - 1;
while(right > left){
char temp = s[right];
s[right] = s[left];
s[left] = temp;
right--;
left++;
}
}
return s;
}
};