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

相关推荐
长安er3 小时前
LeetCode215/347/295 堆相关理论与题目
java·数据结构·算法·leetcode·
元亓亓亓3 小时前
LeetCode热题100--62. 不同路径--中等
算法·leetcode·职场和发展
小白菜又菜3 小时前
Leetcode 1925. Count Square Sum Triples
算法·leetcode
粉红色回忆4 小时前
用链表实现了简单版本的malloc/free函数
数据结构·c++
登山人在路上4 小时前
Nginx三种会话保持算法对比
算法·哈希算法·散列表
写代码的小球5 小时前
C++计算器(学生版)
c++·算法
AI科技星5 小时前
张祥前统一场论宇宙大统一方程的求导验证
服务器·人工智能·科技·线性代数·算法·生活
k***92165 小时前
【C++】继承和多态扩展学习
java·c++·学习
序属秋秋秋5 小时前
《Linux系统编程之进程控制》【进程等待】
linux·c语言·c++·进程·系统编程·进程控制·进程等待
Fuly10246 小时前
大模型剪枝(Pruning)技术简介
算法·机器学习·剪枝