一.字符串左旋转问题
来源:互联网 发布:赚钱软件投资返利 编辑:程序博客网 时间:2024/05/01 08:50
举个例子,abcef向左旋转两位得到cefab
简单的方法就是先编写一个左移一位的函数,然后移动需要移动的位数k次,这样的话时间复杂度为O(k*n),n为字符串位数
本文思路:令X=ab,Y=cef,则X翻转后得到X^T为ba,Y翻转后得到Y^T为fec,则(X^T,Y^T)拼接后翻转正好是所想要结果
本文的方法时间复杂度为O(k)+O(n-k)+O(n)=O(n)
#include<iostream>using namespace std;char* invert(char* start,char* end){char *temp=start;char t;while(start<end&&start!=NULL&&end!=NULL){t=*start;*start=*end;*end=t;start++;end--;}return temp;}char *rotate(char *s,int n){int len=strlen(s);invert(s,s+(n-1));invert(s+n,s+(len-1)); invert(s,s+(len-1)); return s;}void main(){char a[]="sdfghjkl";cout<<a[0];char *s=rotate(a,3);for(int i=0;i<strlen(s);i++){cout<<s[i]<<" ";}cout<<endl;}
0 0
- 一.字符串左旋转问题
- 字符串左旋转问题
- 算法之左旋转字符串(一)
- 左旋转字符串问题 python实现
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 26.左旋转字符串
- 第一章、左旋转字符串
- 字符串的左旋转
- 第一章、左旋转字符串
- 第一章、左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 26、左旋转字符串
- 左旋转字符串
- use supervisor instead of nohup
- 2015年6月26日-ps通道和bridge
- http错误代码解析
- Algorithms—125.Valid Palindrome
- c++常用函数学习--------exit() 与atexit()的区别:
- 一.字符串左旋转问题
- 反编译apk
- 启动进程注入dll
- jsp中用EL读取了数据库里面的时间,怎么设置格式显示的格式
- c++重点知识点
- Nginx负载均衡配置实例详解
- 【VLC-Android】Mac下编译vlc-android
- 编程是一种美德,是促使一个人不断向上发展的一种原动力。
- 递归与分治:二分查找