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

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

定义字符串的左旋转操作,把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab,请实现字符串左旋转函数。

要求时间复杂度O(n),空间复杂度O(1).

 

解法是将前k个字符串反转,后面的字符串同样反转,再对整个字符串进行一次翻转。

 

 

 1 
void swap(
string &a,
int low,
int high)
 2 {
 3     
char temp;
 4     
while(low<high)
 5     {
 6         temp = a[low];
 7         a[low] = a[high];
 8         a[high] = temp;
 9         low++;
10         high--;
11     }
12 }
13 
14 
if(str.length()<=k)
return 
0;
15 swap(str,
0,k-
1);
16 swap(str,k,str.length()-
1);
17 swap(str,
0,str.length()-
1);

 

转载于:https://www.cnblogs.com/xiawen/archive/2013/05/10/3071185.html

你可能感兴趣的文章
gulp教程
查看>>
MySQL常用日期的选择
查看>>
Ubuntu下查看命令的源码
查看>>
锁及锁粒度的详细比喻
查看>>
JS获取终端屏幕、浏览窗口的相关信息
查看>>
长这么漂亮为啥还学编程?什么心态?
查看>>
JQ JS 切换背景图
查看>>
C#WebBrowser控件使用教程与技巧收集
查看>>
Git 命令
查看>>
/x00
查看>>
数据加载中……显示框
查看>>
判断Http请求由手机端发起,还是有电脑端发起
查看>>
ATMEL处理器自带USB CDC的Win7驱动问题
查看>>
gcc 4.8.5安装
查看>>
time模块
查看>>
db2相关问题及解决方法
查看>>
三、CSS样式——背景
查看>>
UVa 12299 RMQ with Shifts(线段树)
查看>>
BZOJ 3224: Tyvj 1728 普通平衡树(BST)
查看>>
uml建模工具Rational Rose2003使用笔记1
查看>>