您的位置:首页 > 编程语言

编程之美读书笔记2.17—数组循环移位

2015-01-03 21:58 183 查看


解法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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: