首页 > 其他 > 详细

左旋转字符串

时间:2014-03-14 18:51:14      阅读:423      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
//左旋转字符串
#include <iostream>
using namespace std;

//一位位移动
void shiftLeftOne(char *str)
{
    int len=strlen(str);

    char temp=str[0];

    for(int i=1;i<len;i++) {
        str[i-1]=str[i];
    }

    str[len-1]=temp;
}

char *shiftLeft(char *str,int n)
{
    int len=strlen(str);

    n=n%len;

    while(n--) {
        shiftLeftOne(str);
    }

    return str;
}

//三步反转
void inverse(char *str,int head,int tail)
{
    while(head<tail) {
        char temp;
        temp=str[head];
        str[head]=str[tail];
        str[tail]=temp;

        head++;
        tail--;
    }
}

char *shiftLeftThreeStep(char *str,int n)
{
    int len=strlen(str);

    n=n%len;

    inverse(str,0,n-1);
    inverse(str,n,len-1);
    inverse(str,0,len-1);

    return str;
}

int main()
{
    char str[]="abcd";

    cout<<shiftLeft(str,4)<<"\n";

    cout<<shiftLeftThreeStep(str,6)<<"\n";
}
bubuko.com,布布扣

左旋转字符串,布布扣,bubuko.com

左旋转字符串

原文:http://www.cnblogs.com/mr-redrum/p/3598717.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!