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

#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;
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-05
  • 2021-08-12
  • 2021-11-07
  • 2022-12-23
  • 2021-12-11
  • 2022-12-23
猜你喜欢
  • 2021-08-21
  • 2022-12-23
  • 2021-06-02
  • 2021-11-20
  • 2022-12-23
相关资源
相似解决方案