classSolution{public:voidreverseString(vector<char>& s){int left =0;int right = s.size()-1;while(right > left){char tmp;
tmp = s[right];
s[right]= s[left];
s[left]= tmp;
right--;
left++;}}};
(2)541. 反转字符串II
该题目重要的是寻找 每 2k 区间的起点,然后进行反转,对于最末尾区间,多一次判断
classSolution{public:
string reverseStr(string s,int k){// 该题目重要的是寻找 每 2k 区间的起点,然后进行反转,对于最末尾区间,多一次判断for(int i =0; i < s.size(); i = i +2* k){// 每隔 2k 个字符的前 k 个字符进行反转,// 或者剩余字符小于 2k 但大于等于 k 个,也进行反转前 k 个// 这两种情况 合并为一种if(i + k <= s.size()){int left = i;int right = i + k -1;while(right > left){swap(s[left], s[right]);
right--;
left++;}}else{// 剩余字符少于 k 个,则将剩余字符全部反转。int left = i;int right = s.size()-1;while(right > left){swap(s[left], s[right]);
right--;
left++;}}}return s;}};