题目长这样:把字符串旋转一次的操作等价于把字符串的最后一个字符放到第一个字符的前面。例如,“abcdef”旋转一次后变为“fabcde”。 输入一个字符串,输出字符串旋转k次后的结果。保证k小于字符串的长度。
输入描述
第一行一个字符串,不包含空格。 第二行一个正整数k。
输出描述
旋转k次后的字符串。 我的代码
#include<bits/stdc++.h>
using namespace std;
string rotatestr(const string& s, int k) {
int n = s.length();
k=k%n;
if (k == 0) {
return s;
}
return s.substr(n - k) + s.substr(0, n - k);
}
int main() {
string s;
int k;
cin >> s;
cin >> k;
string r= rotatestr(s, k);
cout << r<< endl;
return 0;
}
AC是AC了,但是老师说我的方法太麻烦了,可以只用字符型数组和字符串,不需要用这么多函数。怎么写啊啊啊啊。新手求放过。可以帮帮么,只有思路就行。