文档章节

左旋转字符串

Zhang_H
 Zhang_H
发布于 2014/05/05 12:40
字数 299
阅读 20
收藏 0

题目:

定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。

如把字符串 abcdef  左旋转 2  位得到字符串 cdefab。请实现字符串左旋转的函数。

要求时间对长度为 n  的字符串操作的复杂度为 O(n),辅助内存为 O(1)。

分析:

网上看到解法很多种,就不详细说明了。

我采用的是数组不对称的交换时间复杂度应该是O(n)。

代码实现(GCC编译通过):

#include "stdio.h"
#include "stdlib.h"

void reverse_str(char str[],int n,int m);

int main(void)
{
	char str[] = "abcdef";
	reverse_str(str,6,2);
	return 0;
}

//str为字符串数组,n为数组长度,m为左移位数
void reverse_str(char str[],int n,int m)
{
	int i,j;
	char tmp;	
        
	for(i=0,j=n-1;i<j;i++,j--)
	{
		tmp = str[i];
		str[i] = str[j];
		str[j] = tmp;
	}

	for(i=0,j=n-m-1;i<j;i++,j--)
	{
		tmp = str[i];
		str[i] = str[j];
		str[j] = tmp;
	}

	for(i=n-m,j=n-1;i<j;i++,j--)
	{
		tmp = str[i];
		str[i] = str[j];
		str[j] = tmp;
	}

	printf("%s\n",str);
}


 

© 著作权归作者所有

上一篇: 跳台阶问题
下一篇: 原型模式
Zhang_H
粉丝 6
博文 39
码字总数 21186
作品 0
西安
私信 提问
IT公司100题-26-左旋转字符串

问题描述: 给定字符串和左旋的字符数,写程序实现字符串的左旋操作。例如对于字符串”12345678″, 左旋转4个字符后,变成”56781234″。要求时间复杂度为O(n),空间复杂度O(1)。 问题分析:...

关西大汉弹琵琶
2016/01/05
78
0
算法研究之左旋字符串

今天看了一个大牛在网上写的关于算法的研究,感触颇深,所以写下跟随其脚步研究的过程。 定义:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋...

eclipse_xu
2012/12/20
0
0
「UG原创资料」左旋螺纹右旋螺纹定义,左右螺纹的区分以及加工方法

  一、螺纹的定义:   螺纹分为两种:左旋螺纹和右旋螺纹。   当把零件沿轴线垂直放置时,螺纹旋线左端高于右端时,即为左旋螺纹 (如图1两种螺纹旋转方向)。而当右端旋线高于左端时,...

UG数控编程
2018/04/04
0
0
查找----基于红黑平衡树

上一篇:基于散列表(线性探测法)的查找 红黑树中修复平衡需要用到旋转: 当连续出现两条红色左链接时,需要进行右旋转: 当出现一条红色右链接时,需要进行左旋转: 查询: 查询操作完全同...

Superheros
2017/12/16
3
0
二叉平衡树AVL Java实现

二叉平衡树 因为如果连续插入已经排好序的键到二叉查找树,二叉查找树相当于变成了一个链表,查找的时间会是,为了解决这个问题,二叉平衡树应运而生. 它是一 棵空树或它的左右两个子树的高度差的...

选择_9820
2018/06/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
6
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
1K
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部