zoukankan      html  css  js  c++  java
  • 旋转长度左旋转字符串(26)

    近期一直在查找旋转长度之类的问题,下午正好有机会和大家讨论一下.

        26.左旋转字符串

        标题:
    定义字符串的左旋转操纵:把字符串后面的多少个字符移动到字符串的尾部。

        如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
    要求时间对长度为n的字符串操纵的复杂度为O(n),辅助内存为O(1)。

        每日一道理
    爱,有的时候不需要山盟海誓的承诺,但她一定需要细致入微的关怀与问候;爱,有的时候不需要梁祝化蝶的悲壮,但她一定需要心有灵犀的默契与投合;爱,有的时候不需要雄飞雌从的追随,但她一定需要相濡以沫的支持与理解。
    #include<iostream>
    #include<iomanip>
    using namespace std;
    
    void reverse(char *s,const int strl)
    // 以s为起始位置,长度为 strl 
    {
        int i,j;
        char tc;
        for(i=0,j=strl-1/* 长度减一 */;i<j;i++,--j)
         {
            tc=s[i];
            s[i]=s[j];
            s[j]=tc;
         }
    }
    void  Lshift(char *s,int m)
    {
        const int slen=strlen(s);
        reverse(s,m);
        reverse(s+m,slen-m);
        reverse(s,slen);
    }
    
    int main()
    {   
        char s[]="abcdefghijklmn";
        Lshift(s,4);
        cout<<s<<endl;
        system("pause");
        return 0;
        }

        分析:在Lshift函数中,调用三次reverse,前两次将字符串分段分离翻转,最后再整个翻转一次,效果就是左旋m。

    文章结束给大家分享下程序员的一些笑话语录: 爱情观
      爱情就是死循环,一旦执行就陷进去了。
      爱上一个人,就是内存泄露--你永远释放不了。
      真正爱上一个人的时候,那就是常量限定,永远不会改变。
      女朋友就是私有变量,只有我这个类才能调用。
      情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。

  • 相关阅读:
    破解Mac版MyEclipse-2017-ci3
    JAVA8 十大新特性详解
    Java 1.8 时间日期库的20个使用示例
    20180206 反射中模块化开发的上课思路
    反射在数据库读写中的应用
    浅谈多线程并发
    Mac OS Git 安装
    MAC node + git + bower 简单安装
    Mac OS 下 eclipse中文乱码解决方法(eclipse for mac 中文乱码)
    【精华】MacOS 10.13.2 环境下安装eclipse
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3087393.html
Copyright © 2011-2022 走看看