反转字符串 ll

给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。

  ①  如果剩余字符少于 k 个,则将剩余字符全部反转。
  ②  如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
 

示例 1:

  输入:s = "abcdefg", k = 2  // 每 4 字符为间隔,前 2 个反转,后 2 个不变;
  输出:"bacdfeg"
示例 2:

  输入:s = "abcd", k = 2
  输出:"bacd"

运用C++库函数 reverse 函数;

reverse()

  str.reverse(first,last),逆置 s 字符串区间为 [first, last) 内的 元素;非常好用!

class Solution {
public:
    string reverseStr(string s, int k) {
        int l = s.size();
	    for(int i = 0; i < l; i += 2 * k) {
	    	reverse(s.begin() + i, s.begin() + min(i + k, l));//判断最后一个区间内的元素数量,若是小于 k ,则将最后一个区间所有元素逆置;
	    }
        return s;
    }
};