博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串循环左移
阅读量:4286 次
发布时间:2019-05-27

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

今天在看到一道算法面试题,字符串的循环左移,就是给你一个字符串,要求循环左移n个字符

如:1234   2      ---》3412

想了半天,没什么好的方法,暴力循环O(n*len) 的复杂度,到网上查了一下,发现有O(len)的复杂度

解法如下:如上例

先对0~n-1进行反转     21

               再对n~len-1进行反转  43

              得到了    2143

              再对2143进行反转得到最终结果  3412

代码如下:

void Reverse(char *str, int st, int ed){//字符串反转    while(st < ed){        char tmp = str[st];        str[st++] = str[ed];        str[ed--] = tmp;    }}//n表示循环左移的位数void LeftRotateString(char *str, int n){    int len = strlen(str);    Reverse(str, 0, n-1);    Reverse(str, n, len-1);    Reverse(str, 0, len-1);}

转载地址:http://rjsgi.baihongyu.com/

你可能感兴趣的文章
C# Newtonsoft.Json JObject合并对象整理
查看>>
C# 调用微信公众号接口生成带参数二维码、下载、合并
查看>>
C# 调用微信公众号接口发送客服消息示例
查看>>
C# 调用微信公众号接口获取会员信息示例
查看>>
mysql-5.7.xx-winx64服务无法启动解决方案
查看>>
mysql5.7下面windows平台大小写敏感处理
查看>>
安装了淘宝npm后运行cnpm命令提示不是内部或外部命令。
查看>>
Visual Studio 2017 15.5 版发行说明
查看>>
Bootstrap 4重大更新,亮点解读
查看>>
Angular CLI ng常用命令整理
查看>>
Angular 路由使用整理(一)
查看>>
git回到指定版本命令
查看>>
C#计算两个时间年份月份差
查看>>
Cordova 扫码插件整理-cordova-plugin-qrscanner
查看>>
cordova-plugin-splashscreen设置启动页面和图标
查看>>
cordova-plugin-battery-status监听电池状态
查看>>
cordova-plugin-globalization本地化
查看>>
cordova-plugin-contacts联系人操作
查看>>
cordova-plugin-camera相机插件使用
查看>>
cordova-plugin-media音频播放和录制
查看>>