【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】

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

题目分析:

一、方法非常多,仅仅实现当中的一种。方法非常easy直接看代码实现

算法实现:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>/*
** 左移一位
*/
char * left_one_step(char *s, int size)
{char c = s[0];int i=0;for( ;i<size; ++i)s[i] = s[i+1];s[--i] = c;return s;
}char * left_n_step(char *s, int size, int n)
{char *re = s;/***循环次数大于字符串长度后,取余数**降低循环次数*/int m = n%size; while(m--){re = left_one_step(re, size);}return re;
}int main(int argc, char *argv[])
{char *str = strdup(argv[1]);printf("%s--left:%d--->%s\n", argv[1], atoi(argv[2]), left_n_step(str, strlen(str), atoi(argv[2])));free(str);return 0;
}

数据结构——算法之(010)( 字符串的左旋转操作)相关推荐

  1. C#实现字符串左旋转操作

    竞赛题目及要求: 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部.如把字符串abcdef左旋转2位得到字符串cdefab. 要求:对长度为n的字符串操作的时间复杂度为O(n),空间 ...

  2. 字符串向左旋转的解法(c语言)

    各位大佬,今天我要介绍的是字符串旋转的解法. 该题的要求是实现一个函数,它的功能是将一个字符串向左旋转k个字节,例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 它的大概思路 ...

  3. 182-将字符串向左旋转N个位置

    题目如下: 给定一个字符串S和一个数字N,将字符串向左旋转N个位置,然后输出 示例: 将字符串S="hellolinzeyu";向左旋转5个位置 输出:"linzeyuh ...

  4. (operational-transformations)ot算法两个字符串如何生成ot操作转换的工具

    此篇文章写给一同在进行ot算法实践中的朋友们,希望抛砖引玉,有对ot算法感兴趣的小伙伴可以联系我一下,目前关于此算法的一些细节处理上我还有一点点的疑惑部分,希望能讨论解决 Purpose 目的 在目前 ...

  5. 程序员编程艺术(算法卷):第一章、左旋转字符串

    第一章.左旋转字符串 作者:July,yansha. 时间:二零一一年四月十四日. 说明:(狂想曲,有三层意思:1.思绪纷飞,行文杂乱无章,想到什么,记下什么.2.简单问题深入化,复杂问题精细化,不惧 ...

  6. 微软算法100题26 左旋转字符串

    26.左旋转字符串 题目: 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串abcdef 左旋转2 位得到字符串cdefab.请实现字符串左旋转的函数. 要求时间对长度 ...

  7. 程序员面试题精选100题(21)-左旋转字符串[算法]

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

  8. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

    LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...

  9. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

    一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...

最新文章

  1. linux epoll 文件,Linux面试必知:一句话讲透epoll-文件句柄
  2. JavaScript的基础
  3. 当遭遇“用户增长”停滞,你应该怎么办?
  4. MySql连接——内连接、外连接(左连接、右连接、全连接)
  5. Javascript获取日期和星期
  6. python飞机大战游戏代码_python实现飞机大战小游戏
  7. 1402. 星空之夜
  8. 台式计算机如何连接手机热点上网,家里台式没有网络 想用手机热点来连接电脑上网 怎么处理?...
  9. bind搭建智能DNS
  10. android ue设计原则,ued设计原则
  11. 基于单片机的自动浇花灌溉系统设计(#0417)
  12. [转]100本名著浓缩成了100句话
  13. linux基础命令 - ps
  14. 为企业数据安全保驾护航
  15. 约束——非空约束和唯一性约束
  16. 江苏2021年新高考八省联考成绩查询,江苏2021八省联考分数、位次汇总!
  17. 十进制与二进制相互转换(包括带小数点.各类进制转换公式)
  18. RANSAC算法思想
  19. windows server的安全性
  20. csapp深入理解计算机系统实验

热门文章

  1. GridView标题行换行之我见 (转)
  2. 德国SNS交友/视频网站Poppen.de的技术架构分享
  3. ASP.NET实现身份模拟
  4. C#生成pdf的源代码
  5. 【FFmpeg】解决警告warning: xxx is deprecated [-Wdeprecated-declarations]的方法
  6. 【ffmpeg】编译时报错:error: undefined reference to `av...
  7. 【网络编程】同步IO、异步IO、阻塞IO、非阻塞IO
  8. redis mysql排行榜实现_redis实现排行榜
  9. mesh threejs 属性_Threejs构建mesh
  10. 若依前后端分离如何写移动端接口_前后端分离实践的架构设计