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

解析:显然,利用队列的知识点很容易解决该旋转问题,思想就是把队首的元素出队,然后再加到队尾就行了

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class Solution {public String LeftRotateString(String str,int n) {if(str.length()==0){return "";}char []chars =str.toCharArray();//字符串转为字符数组List<Character> list = new ArrayList<>();//list存储单个的字符for(char c :chars){list.add(c);}Queue<Character> queue = new LinkedList<>(list);//把list转为队列for(int i=0;i<n;i++){//控制左移的次数Character temp=queue.poll();queue.add(temp);}StringBuilder sb = new StringBuilder();//字符串拼接不要用String,用StringBuilder更好,StringBuilder适合单线程,效率更高for(Character c:queue){sb.append(c);}return sb.toString();}
}

《剑指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. React+dva+antd的运用
  2. Java 读写json格式的文件方法详解
  3. 面向对象的写法,见到就添,持续更新。。。
  4. centos打显卡驱动命令_Centos7更新内核后安装N卡驱动一键配置脚本
  5. 第三讲 配置SCCM客户端并添加角色
  6. Linux开发_多线程编程
  7. Windows on Device 项目实践 1 - PWM调光灯制作
  8. 计算机中丢失profapi,profapi.dll
  9. ssh服务器安装测试
  10. MKS-DLC雕刻MKS_TFT_CNC字机器,CNC雕刻,激光雕刻GRBL使用方法
  11. 最大值减最小值等于区间长度_一文帮你弄清楚电压和电流的有效值、瞬时值、平均值、最大值及其关系...
  12. office2019初体验与kms服务器搭建
  13. [ vulhub漏洞复现篇 ] Tiki Wiki CMS Groupware 认证绕过漏洞CVE-2020-15906
  14. fastq文件转化成bam文件
  15. plotm matlab,MATLAB画地图的工具:worldmap和m_map
  16. Android开发之EditText多行文本输入
  17. 基于MediaPlayer的Android播放器控件
  18. 缺页中断与页面置换算法
  19. 输入一个字符串,判断其是否是回文。(回文:即正读和反读都一样,如abccba, abccba)
  20. 计算机学院乔丽红,用巴特莱特窗函数法设计数字FIR带通滤波器dsp课程设计.doc...

热门文章

  1. 搜索引擎CACHE策略研究
  2. 【已解决】请先调用 init 完成初始化后再调用其他云 API。init 方法可传入一个对象用于设置默认配置,详见文档。; at cloud.callFunction api 解决方案
  3. 算法竞赛入门经典(第二版) | 例题4-2 刽子手游戏 (UVa489,Hangman Judge)
  4. String,char,数组,列表 相互转化 (更新中)
  5. STM32F1如何切换到不同的型号
  6. qpython numpy_Python-Numpy全面精简教程
  7. python中列表数据汇总和平均值_python的列表List求均值和中位数实例
  8. 电脑屏保海底世界_想象不到!这些世界顶尖科技,掌握在谁的手里?
  9. python怎样遍历列表中数字_关于Python列表的遍历和数字列表
  10. linux 基础学,linux基础学习【1】