博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
左旋字符串
阅读量:4115 次
发布时间:2019-05-25

本文共 783 字,大约阅读时间需要 2 分钟。

题目: 

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

代码:

class Solution {public:    string LeftRotateString(string str, int n) {        //判断非法情况:当字符串是空或者左旋的位数小于0时,都不满足合法性        if(str.empty()||n<0){            return "";        }        //当n=0时,返回原字符串        if(0==n){            return str;        }        //先把需要组左旋的位数逆置[0,n-1];        reverse(str,0,n-1);        //把除过左旋的位数逆置[n,length-1];        reverse(str,n,str.size()-1);        //最后再整体逆置[0,length-1];        reverse(str,0,str.size()-1);        return str;    }    void reverse(string &str,int left,int right){        while(left

补充右旋字符串:

逆序[0, length-n-1],得到ZYXcbadef 

逆序[length-n, length-1],得到ZYXcbafed 
逆序[0, length-1],得到defabcXYZ

转载地址:http://oqypi.baihongyu.com/

你可能感兴趣的文章
Vue项目中使用img图片和background背景图的使用方法
查看>>
vue 项目中图片选择路径位置static 或 assets区别
查看>>
vue项目打包后无法运行报错空白页面
查看>>
Vue 解决部署到服务器后或者build之后Element UI图标不显示问题(404错误)
查看>>
element-ui全局自定义主题
查看>>
facebook库runtime.js
查看>>
vue2.* 中 使用socket.io
查看>>
openlayers安装引用
查看>>
js报错显示subString/subStr is not a function
查看>>
高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作
查看>>
初始化VUE项目报错
查看>>
vue项目使用安装sass
查看>>
HTTP和HttpServletRequest 要点
查看>>
在osg场景中使用GLSL语言——一个例子
查看>>
关于无线PCB中 中50欧姆的特性阻抗的注意事项
查看>>
Spring的单例模式源码小窥
查看>>
后台服务的变慢排查思路(轻量级应用服务器中测试)
查看>>
MySQL中InnoDB事务的默认隔离级别测试
查看>>
微服务的注册与发现
查看>>
bash: service: command not found
查看>>