题目描述
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
解题思路:本题思路借鉴于翻转单词顺序题目
例如abcdefg 和数字2   可以看做翻转ab 和 cdefg
先翻转ab cdefg得到 bagfedc  然后翻转整个字符串得到cdefgab

 1 class Solution {
 2 public:
 3     void Reverse(char *pStart, char *pEnd)
 4     {
 5         if(pStart == NULL || pEnd == NULL)
 6             return;
 7         while(pStart < pEnd)
 8         {
 9             char tmp = *pStart;
10             *pStart = *pEnd;
11             *pEnd = tmp;
12             pStart++;
13             pEnd--;
14         }
15     }
16     string LeftRotateString(string str, int n) {
17         if(!str.empty())
18         {
19             int length = str.size();
20             if(length > 0 && n>0 && n < length)
21             {
22                 char *pFirstStart = &str[0];
23                 char *pFirstEnd = &str[n-1];
24                 char *pSecondStart = &str[n];
25                 char *pSecondEnd = &str[length-1];
26                 //翻转前n个
27                 Reverse(pFirstStart,pFirstEnd);
28                 //翻转第n+1个到最后
29                 Reverse(pSecondStart,pSecondEnd);
30                 //翻转整个字符串
31                 Reverse(pFirstStart,pSecondEnd);
32             }
33         }
34         return str;
35     }
36 };

转载于:https://www.cnblogs.com/qqky/p/7018461.html

43、剑指offer--左旋转字符串相关推荐

  1. [剑指Offer]-左旋转字符串

    题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如输入字符串"abcdefg"和数字2,该函数将返回左旋转2位 ...

  2. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

    一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...

  3. 备战sp23春招 day8 | 344.反转字符串 541. 反转字符串II 剑指 05.替换空格 151.翻转字符串里的单词 剑指58-II.左旋转字符串

    344 反转字符串 class Solution {public:void reverseString(vector<char>& s) {int n = s.size();int ...

  4. 402-字符串(题目:剑指Offer58-II.左旋转字符串、 28. 实现 strStr()、459.重复的子字符串)

    题目:剑指Offer58-II.左旋转字符串 class Solution {public:string reverseLeftWords(string s, int n) {string s1(s. ...

  5. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

    LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...

  6. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  7. 剑指 Offer 11. 旋转数组的最小数字 简单

    剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...

  8. 【LeetCode】剑指 Offer 11. 旋转数组的最小数字

    [LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...

  9. 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java

    <LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...

  10. 剑指offer 11. 旋转数组的最小数字(很详细!)

    剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...

最新文章

  1. OpenGL学习脚印: 投影矩阵和视口变换矩阵
  2. 华为天才少年榜单遭受嘲讽:感觉水平一般,有点哗众取宠!
  3. ROS学习之URDF
  4. 清华大学计算机系毕业季博论 | 预荐未来的自己
  5. SAP UI5 jQuery.sap.setObject
  6. mahout学习笔记4
  7. C语言实用算法系列之学生管理系统_对整个结构体操作_冒泡排序_提取排序规则
  8. Mschart图表制作
  9. ASP.NET中下载文件的几种方法
  10. 网际控制报文协议ICMP(Internet Control Message Protocol)(详解)
  11. 可蠕虫 DarkRadiation 勒索软件瞄准 Linux 和 Docker 实例
  12. 编程语言中的常量折叠(const folding)
  13. Android 11 Meetup 上海站!来了!
  14. 瑞斯凯X9D Plus无法连接DCL模拟器的解决方法
  15. Python的崛起,百万程序员被影响?真相……
  16. Win10开了热点之后,电脑不能上网怎么解决?
  17. 如何解决html文档无法复制,教你如何解决网页不能复制粘贴的问题
  18. Windows API函数大全---附:windows运行命令详解
  19. 网页导航栏设计方法和技巧
  20. git和github到底是什么的缩写?

热门文章

  1. Java thread 怎么用_Java Thread 的使用
  2. mysql中int 5_mysql中int(x)与int以及varchar与char的区别_HelloWorld_ty的博客-CSDN博客
  3. explain是mysql的关键字吗_Mysql Explain 关键字
  4. python整数浮点数复数类型判断函数_Python数值类型(整形、浮点型和复数)及其用法讲解...
  5. 在Eclipse里面引入dtd文件
  6. zmq -- mailbox -- session之间关系
  7. 字符串 -- 3.15 Length of Last Word -- 图解
  8. 位运算 -- 思考
  9. es 时间字段聚合_ES聚合命令
  10. python顺序查找算法解释_顺序查找算法详解(包含C语言实现代码)