太湖度假区建设局网站,荥阳市城乡规划和建设局网站,看小视频的浏览器有哪些,广州兼职做网站1. 题目
给定一个字符串和一个整数 k#xff0c;你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符#xff0c;则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符#xff0c;则反转前 k 个字符#xff0c;并将剩余的字符保…1. 题目
给定一个字符串和一个整数 k你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符则反转前 k 个字符并将剩余的字符保持原样。
示例:
输入: s abcdefg, k 2
输出: bacdfeg要求:
该字符串只包含小写的英文字母。
给定字符串的长度和 k 在[1, 10000]范围内。来源力扣LeetCode 链接https://leetcode-cn.com/problems/reverse-string-ii 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
class Solution {
public:string reverseStr(string s, int k) {for(int i 0; i s.size(); i 2*k){if(ik s.size())revStr(s,i,ik-1);elserevStr(s,i,s.size()-1);}return s;}void revStr(string s, int i, int j){while(i j)swap(s[i],s[j--]);}
};