字符串的旋转
来源:互联网 发布:linux 虚拟化 多台 编辑:程序博客网 时间:2024/06/10 18:40
给定一个字符串abcdef,将前3个移到后面变成defabc.
#include <iostream>using namespace std;//解法1:暴力/*void LeftshiftOne(char *s,int n){ char a = s[0]; for (int i = 0; i < n;i++) { s[i] = s[i + 1]; } s[n-1] = a;}void LeftRotateString(char *s,int m,int n){ while (m--) { LeftshiftOne(s, n); }}int main(){ char s[100]; cin >> s; LeftRotateString(s,3,strlen(s)); cout << s;}//时间复杂度过高o(m*n),空间复杂度O(1);*/
解法2:三步反转
void ReverseString(char *s,int from,int to){ while (from<to) { char t = s[from]; s[from++] = s[to]; s[to--] = t; }}void leftRotateString(char *s,int m,int n){ ReverseString(s, 0, m - 1);//需要反转的前半部分(比做成a数组),先自行反转 ReverseString(s, m, n-1);//后半部分(比做成b数组),在自行反转 ReverseString(s, 0, n - 1);//全体反转}int main(){ char s[100]; cin >> s; leftRotateString(s, 3, strlen(s)); cout << s; return 0;}//时间复杂度为O(N),空间为O(1)
1 0
- 字符串-字符串的旋转
- 字符串的左旋转
- 字符串的左旋转
- 字符串的左旋转
- 字符串的旋转
- 字符串的旋转
- 字符串的旋转
- 字符串的旋转
- 字符串的旋转
- 字符串的左旋转
- 字符串的旋转
- 字符串的旋转问题
- 字符串的旋转
- 字符串的旋转问题
- 字符串的旋转
- 字符串的旋转
- 字符串的旋转
- 字符串的旋转
- 行级标签和组合标签
- hdu1042 N!_大数
- Fiddler对iphone应用进行抓包
- Namenode HA原理详解(脑裂)
- AndroidStudio无法启动模拟器也无法调试
- 字符串的旋转
- 数据库与C#控件接口,以及一些常用函数
- 单例模式的七中写法
- IT痴汉的工作现状48-领导的决定
- TCP/IP协议族——OSI模型和TCP/IP协议族
- 关于静态代码块和静态属性哪个先执行
- 34 day's learning is ooooooover!
- LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 算法导论笔记——堆排序