給定數組 str[],循環左移m位。即如果str="ABCDEF",循環左移2位得到 "CDEFAB"

 題目:給定數組 str[],循環左移m位。即如果str="ABCDEF",循環左移2位得到 "CDEFAB"

算法:使用兩個倒序,倒序AB得到BA,倒序CDEF得到FEDC,最後全部BAFEDC全部倒序CDEFAB

#include <string.h>

#include <iostream>

using namespace std;

void reverse(char *str,int left,int right)

{

char tmp;

for(int i=left,j=right;i<j;i++,j--)

{

tmp=str[i];

str[i]=str[j];

str[j]=tmp;

}

}

void shift(char *str,int m, int len)

{

reverse(str,0,m-1);

reverse(str,m,len-1);

reverse(str,0,len-1);

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章