当前位置: 首页 > article >正文

【字符串算法题】541. 反转字符串 II

题目链接

思考

  • 把字符串以2k的步长分成count_reverse个子区间。
  • 考虑最后一个子区间的字符数量:1)如果大于等于k,则它要和前面的子区间一样,要对区间内的前k个字符进行反转;2)如果小于k,则它的所有字符都要进行反转。

cpp代码

class Solution {
public:
    string reverseStr(string s, int k) {
        int count_reverse = s.size() / (2*k); // 以2k为步长计算字符串子区间
        // 如果最后一个子区间字符大于等于k个,则它也算在要进行前k个字符反转的子区间集合内
        if(s.size() % (2*k) >= k) count_reverse++; 
        
        int r_index = 0; // 每个子区间进行反转的开头index
        for(int i = 0; i < count_reverse; i++){ // 对每个子区间前k个字符进行反转
            reverse(s.begin() + r_index, s.begin() + r_index + k);
            r_index += (2*k);
        }

        // 如果最后一个子区间字符小于k个,则它的所有字符都要反转
        if(s.size() % (2*k) < k)
            reverse(s.begin() + r_index, s.end());
        return s;
    }


};

http://www.kler.cn/a/273192.html

相关文章:

  • C++ 模板专题 - 静态分支(if)
  • Linux 之 信号概念、进程、进程间通信、线程、线程同步
  • copyq禁止访问网络(ubuntu cgroup)
  • Llama 3.2 Vision Molmo:多模态开源生态系统基础
  • 电子电气架构 --- 车载诊断的快速入门
  • OpenSLL下载,环境变量配置
  • es 聚合操作(二)
  • openstack迁移虚拟机--来自gpt
  • kerberos验证协议安装配置使用
  • 6语言交易所/多语言交易所php源码/微盘PHP源码
  • 数据结构 二叉树 力扣例题AC——代码以及思路记录
  • 由浅到深认识C语言(13):共用体
  • 分享一个不错的three.js开源项目
  • 鸿蒙 Harmony 初体验
  • Linux——动静态库的制作及使用与动态库原理
  • hadoop分布式环境搭建
  • 【Datawhale组队学习:Sora原理与技术实战】使用KAN-TTS合成女生沪语音频
  • 【华为OD机试】找座位【C卷|100分】
  • 代码随想录阅读笔记-哈希表【四数之和】
  • http协议的历史与基本概念
  • 第四百一十回
  • 【现代C++】移动语义和右值引用
  • JAVA八股文面经问题整理第6弹
  • 【C++】三大特性之多态
  • 苍穹外卖-day06:HttpClient、微信小程序开发、微信登录(业务流程)、导入商品浏览功能代码(业务逻辑)
  • VPTTA:为每张医疗图像生成特定的“提示”,解决跨不同设备和条件的医疗图像分割的准确性和适应性