541. 反转字符串 II【力扣】

  1. 反转字符串 II

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

如果剩余字符少于 k 个,则将剩余字符全部反转。

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

示例 1:

输入:s = "abcdefg", k = 2

输出:"bacdfeg"

示例 2:

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

输出:"bacd"

思路

翻转2k个字符的前k个字符=>将 s 分为长度为 2k 的小段用 reverse 翻转前k个=>特殊情况: 若最后一段不足k个则全部翻转

cpp 复制代码
class Solution {
public:
    string reverseStr(string s, int k) {
        for(int i=0;i<s.size();i+=(2*k)){
            if(i+k<=s.size()) reverse(s.begin()+i,s.begin()+i+k);
            else reverse(s.begin()+i,s.end());
        }
        return s;
    }
};

541. 反转字符串 II

相关推荐
一只小bit2 小时前
Qt 绘图核心教程:从基础绘制到图像操作全解析
前端·c++·qt·gui
u0109272712 小时前
C++中的模板方法模式
开发语言·c++·算法
山上三树2 小时前
详细介绍读写锁
开发语言·c++·spring
重生之我是Java开发战士2 小时前
【优选算法】滑动窗口:长度最小的子数组,无重复字符的最长子串,最大连续1的个数,将x减到0的最小操作数,水果成篮,异位词,串联所有单词的子串,最小覆盖子串
算法
苏宸啊2 小时前
string实现
c++
马士兵教育2 小时前
计算机专业学生入行IT行业,编程语言如何选择?
java·开发语言·c++·人工智能·python
naruto_lnq3 小时前
C++与自动驾驶系统
开发语言·c++·算法
啊阿狸不会拉杆3 小时前
《数字信号处理》第6章:数字滤波器的基本概念及几种特殊滤波器
算法·matlab·信号处理·数字信号处理·dsp
奶茶树3 小时前
【数据结构进阶】AVL树(详解)
数据结构·c++
放荡不羁的野指针3 小时前
leetcode150题-双指针
数据结构·算法·leetcode