字符串的左旋转

原创 2015年07月07日 09:40:10

题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串 abcdef 左旋转 2 位得到字符串 cdefab。请实现字符串左旋转的函数。要求时间对长度为 n 的字符串操作的复杂度 为 O(n),辅助内存为 O(1)。


#include<iostream>
#include<string.h>
#include<assert.h>
using namespace std;

void reverse_str(char *le, char *ri)
{
	assert(le);
	assert(ri);

	while (le < ri)
	{
		char tmp = *le;
		*le = *ri;
		*ri = tmp;

		le++;
		ri--;
	}
}

void reverse(char *str,int n)
{
	int len = strlen(str);
	char *start = str;
	char *end = str + len - 1;

	reverse_str(start,start+n-1);
	reverse_str(start+n,end);
	reverse_str(start,end);
}

int main()
{
	char p[] = "abcdef";
	reverse(p, 2);
	printf("%s\n", p);
	return 0;
}


左旋转字符串与右旋转字符串

一、 关于左旋转与右旋转操作: 定义字符串的左旋转操作:把字符串前面的几个字符移动到字符串后面去,比如"ABCDEFGHI",左旋转2位得到"CDEFGHIAB"; 同样右旋转操作:把字符串后面的几个...
  • zyl_1102179268
  • zyl_1102179268
  • 2016年12月09日 17:11
  • 603

经典算法——左旋转字符串

题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”ab...
  • geekmanong
  • geekmanong
  • 2016年03月17日 14:31
  • 1155

【剑指offer】左旋转字符串

这道题之前在Cracking the Coding interview上做过类似的,一样的三次反转,即可得到,时间复杂度为O(n),空间复杂度为O(1)。这道题在九度OJ上测试,主要要考虑移动的位数大...
  • mmc_maodun
  • mmc_maodun
  • 2014年05月29日 08:29
  • 2776

定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 * 如把字符串abcdef左旋转2位得到字符串cdefab。

public class Lianxi007 { public static void main(String[] args) { String str1="abcdef"; int l=2...
  • qq_36872096
  • qq_36872096
  • 2017年08月08日 11:26
  • 185

算法习题26:定义字符串的左旋转操作,把字符串前面的若干个字符移动到字符串的尾部

题目: 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。 要求时间对长度为n的字符串操...
  • ylf13
  • ylf13
  • 2013年10月21日 11:57
  • 947

平衡二叉树:左单旋&右单旋&左右单旋&右左单旋 遇到的问题&解决方法

为什么要引入旋转这一说法呢? 因为在建立平衡二叉树,插入二叉树节点的时候,如果发现平衡因子不是-1,0,1的时候就会进行调整,而平衡因子是判断一个二叉树的每层是否平衡的数据 在进程调制的时候就会有左...
  • asd7486
  • asd7486
  • 2016年07月06日 15:13
  • 1189

字符串左旋转--编程珠玑

问题描述:待移动的数组假设为str,长度为len,需要左旋转rotate位 方法一:最简单方法。将数组的前rotate元素复制到一个临时数组中,然后将余下的len-rotate个元素向左移动i个位置...
  • u013115185
  • u013115185
  • 2016年01月05日 20:21
  • 258

字符串左旋转

字符串左旋转解释:例:原字符串为abcd,左旋转两位则为:cdab     题目:实现字符串的左移,左移n位,要求对长度为n的字符串操作的时间复杂度为O(n)    对于数组循环移位问题,...
  • woailvmengmeng
  • woailvmengmeng
  • 2014年07月06日 16:38
  • 461

字符串左旋转问题

定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部,如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),...
  • gao1440156051
  • gao1440156051
  • 2014年10月30日 09:41
  • 532

剑指offer----左旋转字符串----java实现

对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。 思路: (1)借助于单词翻转的顺序地...
  • snow_7
  • snow_7
  • 2016年08月15日 17:00
  • 889
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串的左旋转
举报原因:
原因补充:

(最多只允许输入30个字)