題目:給定數組 str[],循環左移m位。即若是str="ABCDEF",循環左移2位獲得 "CDEFAB"ios
算法:使用兩個倒序,倒序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);
- }