字符串移动m位

时间:2021-01-20 13:05:55   收藏:0   阅读:28

面试问了这道题,居然没想出最优解,记录下。

#include <iostream>
#include <cstring>

using namespace std;

void str_turn (char *str, int len) {
    for (int i = 0; i < len/2; i++) {
        char tmp = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = tmp;
    }
}

void str_move(char *str, int m)
{
    int len = strlen(str);
    if (m > len) m = m % len;
    str_turn(str + (len - m), m);
    str_turn(str, len - m);
    str_turn(str, len);
}

int main()
{
    char str[100];
    int n;
    cin >> str >> n;
    str_move(str, n);
    cout << str << endl;
    return 0;
}

 

原文:https://www.cnblogs.com/HadesBlog/p/14301831.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!