字符串左转
来源:互联网 发布:apache flink中文文档 编辑:程序博客网 时间:2024/04/28 18:42
题目为:
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部,如把字符串abcdef左旋转2位得到字符串cdefab。
请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。
首先想到的自然是暴力解决,不过肯定有更好的办法,如下:
//代码如下:#include<stdio.h>//数据存储在a[1...n-1]//法① :暴力破解/*void Leftmove(int *a,int n){a[0] = a[1];for(int i=1;i<n-1;i++)a[i] = a[i+1];a[n-1] = a[0];}*///法② :三步反转法void Reverse(int *a,int start,int end)//将一段反转{while(start<end){int temp = a[start];a[start++] = a[end];a[end--] = temp;}}//将整段分为X+Y看图理解void Leftmove(int *a,int n,int count){Reverse(a,1,count);//将X段反转Reverse(a,count+1,n);//将Y段发转Reverse(a,1,n);//整个反转}int main(){int a[8] = {0,1,2,3,4,5,6,7};Leftmove(a,7,3);for(int i=1;i<8;i++)printf("%d ",a[i]);return 0;}
0 0
- 字符串左转
- 字符串左转
- 剑指offer--翻转单词VS左转字符串
- 编程艺术之第一章:左转字符串
- 剑指offer(46):左转字符串
- 左转算法C++实战
- poj-3083-bfs+左转优先+右转优先
- 红黑二叉树左转、右转
- 无禁止掉头禁止左转标志车辆可掉头
- 从德国右转与日本左转看中国崛起之路
- 左转还是右转?测试你用的是是左脑还是右脑
- 西安市东南城角十字路口只能掉头不能左转了
- iOS屏幕强制横屏,如右转或左转
- SSH简单整合总结,个人新手,精通出门左转
- 前端 图片旋转角度(如90,180,左转,右转)
- navisworks 按钮控制漫游的移动,前进、后退、左转、右转
- 九、linux编辑器哪家强?出门左转找Qt!
- BZOJ1035: [ZJOI2008]Risk(最小左转法+点定位)
- android常见面试题与我自己的回答
- Binary Tree Inorder Traversal
- java并发编程 之 并发集合对象
- 数据集基本信息查看
- Eclipse 编辑环境配置
- 字符串左转
- Spring的IOC原理
- 基础练习 特殊回文数
- 疏于整理,必死无疑!
- 第4周项目1-阅读程序(2)
- 回溯法
- mongodb 登录
- 中国省市json数据[转]
- 健康在线:老人胃口变差也要警惕肺炎