【剑指Offer】(字符串)左旋转字符串(翻转操作)

2023-11-14

题目链接https://www.nowcoder.com/practice/12d959b108cb42b1ab72cef4d36af5ec?tpId=13&tqId=11196&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

解决方法
class Solution {
public:
    string LeftRotateString(string str, int n) {
        if(str.size()<=1) return str;
        n=n%str.size();
        if(n<=0) return str;                
        
        //方法1:需要借助O(n)额外空间
        /*string ans=str;
        for(int i=0;i<(str.size()-n);i++) ans[i]=str[i+n];
        for(int i=str.size()-n;i<str.size();i++) ans[i]=str[i-(str.size()-n)];
        return ans;*/
        //方法2:借助翻转操作。空间复杂度较低
        //[1]先将字符串分成两部分,分别翻转这两部分
        reverse(str,0,n-1);
        reverse(str,n,str.size()-1);
        //[2]翻转整个字符串
        reverse(str,0,str.size()-1);
        return str;
            
    }
    void reverse(string& str,int begin,int end){
        //翻转
        while(begin<end){
            char temp=str[begin];
            str[begin]=str[end];
            str[end]=temp;
            begin++;end--;
        }
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【剑指Offer】(字符串)左旋转字符串(翻转操作) 的相关文章

随机推荐

  • [leetcode 周赛 148] 1146 快照数组

    目录 1146 Snapshot Array 快照数组 描述 思路 代码实现 1146 Snapshot Array 快照数组 描述 实现支持下列接口的 快照数组 SnapshotArray SnapshotArray int length
  • nginx关于add_header的坑

    一 add header指令不会去重 nginx做反向代理时 如果后端返回的response中已经有该header头 则通过add header后会返回给客户端两个同样的header头 场景1 nginxA作为反向代理 nginxB作为we
  • 如何利用运营商大数据准确获取客户?

    在今天运营商的大数据准确捕捉客户的时代 我们似乎看到客户在我们面前若隐若现 但当我们伸手去抓他们时 我们发现他们很少 原因是什么 我们的客户之所以成为美丽的海市蜃楼 主要原因 还在于对客户的把握不够精准 什么是大数据准确性 大数据精准获客是
  • 【论文阅读】基于深度学习的时序异常检测——TimesNet

    系列文章链接 参考数据集讲解 数据基础 多维时序数据集简介 论文一 2022 Anomaly Transformer 异常分数预测 论文二 2022 TransAD 异常分数预测 论文三 2023 TimesNet 基于卷积的多任务模型 论
  • 线性相关与线性无关的定义与性质

    定义1 线性相关 K n K n K nK n Kn Kn 中向量组
  • Caffe训练过程:test_iter test_interval等概念

    转自 http blog csdn net iamzhangzhuping article details 49993899 先上一张图 大家很熟悉的一张图 首先说明一个概念 在caffe中的一次迭代iteration指的是一个batch
  • Webrtc从理论到实践六: Webrtc官方demo运行

    系列文章目录 Webrtc从理论到实践一 初识 Webrtc从理论到实践二 架构 Webrtc从理论到实践三 角色 Webrtc从理论到实践四 通信 Webrtc从理论到实践五 编译webrtc源码 文章目录 系列文章目录 操作步骤 总结
  • 语义分割模型

    1 FCN 1 通道数 21 的特征层 21 数据集类数20 背景1 每一个像素有21个通道 对21个通道进行softmax回归 之后就可以获得每一个像素的每一个类别的预测概率 因为可以确认像素概率最大的那一类 2 CNN中的最后通过全连接
  • Blender 骨骼子父级关系链接

    一 骨骼子父集关系链接 操作顺序 1 选中物体 2 选中骨骼 3 Ctrl P根据个人需求选择 多数情况会选择自动权重 如果选择顺序不同 Ctrl P出现的界面就不会显示权重选择 二 骨骼被物件遮挡 选中骨骼 在下图中的界面里 勾选在前面即
  • 【51单片机】:定时器的详解(包括对单片机定时解释、各类定时方式,以及中断方式)

    学习目标 51定时 计数器的详解 码字不易 如有帮助请收藏 点赞哦 学习内容 背景知识 了解一下对以后学习有帮助 前提 首先我们知道51单片机内部有21 26个特殊功能寄存器 P x口寄存器 P0 P1 P2 P3 数据指针寄存器 DP0H
  • STM32 GPIO 详解

    0 实验平台 基于STM32F407ZG 1 GPIO 简介 1 1 简介 GPIO全称 General Purpose Input Output 即通用输入输出端口 一般用来采集外部器件的信息或者控制外部器件工作 即输入输出 1 2 ST
  • 前端系列——jquery.i18n.properties前端国际化解决方案“填坑日记”

    前言 最近 新的平台还没有开发完成 原来的老项目又提出了新的需求 系统国际化 如果是前后端完全分离的开发模式 要做国际化 真的太简单了 有现成的解决方案 基于Node构建的时下热门的任何一种技术选型都有成熟的方案 比如 vue vue i1
  • delphi 通过TNetHTTPClient解析抖音无水印高清视频原理及解决X-Bogus签名验证2023-5-1

    一 杂谈 最近有很多热心网友反馈抖音去水印又不行了 之前是时不时被blocked 现在直接连内容都没有了 返回直接就是空了 我们今天简要给大家分析一下请求过程 附上delphi 源码 及生成签名验证 成功请求到json数据的解决方法 二 请
  • 损失函数:IoU、GIoU、DIoU、CIoU、EIoU、alpha IoU、SIoU、WIoU超详细精讲及Pytorch实现

    前言 损失函数是用来评价模型的预测值和真实值不一样的程度 损失函数越小 通常模型的性能越好 不同的模型用的损失函数一般也不一样 损失函数的使用主要是在模型的训练阶段 如果我们想让预测值无限接近于真实值 就需要将损失值降到最低 在这个过程中就
  • 苹果官网序列号查询

    苹果官网 https checkcoverage apple com cn zh locale zh CN 官换机要怎么鉴别是正品新机 https www zhihu com question 44779845
  • 基于C++的OpenCV项目实战——零部件的自动光学检测

    基于C 的OpenCV项目实战 零部件的自动光学检测 一 背景 首先任务背景是AOI 自动光学检测 最重要的目的在于 将前景和物体进行分割与分类 场景示意图 需要注意 在螺母的传送带上 需要有前光和背光 给物体打光才能够拍摄清晰的图像 二
  • LeetCode4. 寻找两个正序数组的中位数

    题意 给定长度为 n n n的数组 A A A和长度为 m m m的数组
  • 小P学区块链(一):区块链到底是什么?该如何去学习

    2018年3月25日 CSDN 副总裁孟岩老师在北京联合大学商务学院举办了一场关于区块链及智能合约相关的公开课 在课程的三个小时里 受益匪浅 我会对课程的理解和对区块链及智能合约的概念做一个总结 同样我也会继续学习这方面的知识 将定期更新相
  • sonarqube主要功能概览

    sonarqube质量标准 sonarqube通过可靠性 安全性 安全复审 可维护性 覆盖率 重复度等方面来评价代码质量 分别使用bugs 漏洞等指标 如图 有项目状态为正常 有项目状态为错误 点进项目可以看具体 可以对问题进行分配 处理
  • 【剑指Offer】(字符串)左旋转字符串(翻转操作)

    题目链接 https www nowcoder com practice 12d959b108cb42b1ab72cef4d36af5ec tpId 13 tqId 11196 tPage 1 rp 1 ru ta coding inter