博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构与算法面试题80道(26)
阅读量:5955 次
发布时间:2019-06-19

本文共 524 字,大约阅读时间需要 1 分钟。

6.左旋转字符串

 

题目:

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

 

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

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

 

将abcdefg的前三个左旋。先abcdefg->defabcg->defgbca(时间为n-3)

将问题转换为将bca的前一个左旋。先bca->acb(时间为1)

将问题转换为将cb的前一个左旋。cb->bc(时间为1)

所有时间复杂度为0(n).

所有的问题都是字母两两交换,辅助内存为O(1).

 

#include
#include
using namespace std;char str[]="abcdefghij";void leftRotateString(int left,int right,int n){ int temp=right-left; for(int i=left+n;i

 

转载于:https://www.cnblogs.com/wabi87547568/p/5272382.html

你可能感兴趣的文章
mysql 从库升级为主库的步骤
查看>>
inode满处理
查看>>
linux 定时任务 crond 服务介绍
查看>>
我和51CTO的缘分【我与51CTO一“七”成长】
查看>>
陈松松:知道这5个视频营销流量入口,你不缺流量
查看>>
Git 忽略文件
查看>>
Zabbix-server安装后的故障处理及Zabbix-agent的配置添加过程
查看>>
电子罗盘的分类
查看>>
分布式链路追踪工具skywalking 介绍
查看>>
struct和typedef struct
查看>>
Linux基础管理——磁盘管理及文件系统(全)
查看>>
【自用】手工编译lnmp环境
查看>>
普通用户通过Putty密钥方式登录
查看>>
网页显示3D模型
查看>>
第六章:thymeleaf页面模版-1. 信息输出
查看>>
Azure Table storage 基本用法
查看>>
Ubuntu 16.04 install Docker 1.12.0
查看>>
2012《Linux杂志》读者选择奖 (Readers' Choice Awards 2012- Linux Journal)
查看>>
21天让你成为Horizon View高手—Day11:手动池的创建
查看>>
Python迭代对象、迭代器、生成器
查看>>