解法1:直接 O(K*N)
解法2:
.cpp
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void reverse(string *s,int begin,int end)
{
while(begin<end)
{
char temp=s->at(begin);
s->at(begin)=s->at(end);
s->at(end)=temp;
++begin;
--end;
}
}
void rightShift(string *A,int n,int k)
{
reverse(A,0,n-1-k);
reverse(A,n-k,n-1);
reverse(A,0,n-1);
}
int main()
{
string A="abcd1234";
int n=8,k=4;
rightShift(&A,n,k);
cout<<A;
system("pause");
}