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

相关推荐
苦藤新鸡10 分钟前
8.最长的无重复字符的子串
c++·力扣
千金裘换酒12 分钟前
LeetCode反转链表
算法·leetcode·链表
꧁Q༒ོγ꧂1 小时前
C++ 入门完全指南(四)--函数与模块化编程
开发语言·c++
byzh_rc1 小时前
[认知计算] 专栏总结
线性代数·算法·matlab·信号处理
汉克老师1 小时前
GESP2025年12月认证C++八级真题与解析(判断题8-10)
c++·快速排序··lcs·gesp八级·gesp8级
qq_433554541 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法
歌_顿2 小时前
知识蒸馏学习总结
人工智能·算法
圣保罗的大教堂2 小时前
leetcode 1161. 最大层内元素和 中等
leetcode
闲看云起2 小时前
LeetCode-day6:接雨水
算法·leetcode·职场和发展
没学上了2 小时前
VLM_一维离散卷积与二维离散卷积(还是复习感觉还行)
算法