數組循環移位

 題目:給定數組 str[],循環左移m位。即若是str="ABCDEF",循環左移2位獲得 "CDEFAB"ios

算法:使用兩個倒序,倒序AB獲得BA,倒序CDEF獲得FEDC,最後所有BAFEDC所有倒序CDEFAB算法

  
  
  
  
  1. #include <string.h> 
  2. #include <iostream> 
  3. using namespace std; 
  4.  
  5. void reverse(char *str,int left,int right) 
  6.         char tmp; 
  7.  
  8.         for(int i=left,j=right;i<j;i++,j--) 
  9.         { 
  10.                 tmp=str[i]; 
  11.                 str[i]=str[j]; 
  12.                 str[j]=tmp; 
  13.         } 
  14.  
  15. void shift(char *str,int m, int len) 
  16.         reverse(str,0,m-1); 
  17.         reverse(str,m,len-1); 
  18.         reverse(str,0,len-1); 
相關文章
相關標籤/搜索