數組循環移位

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

算法:使用兩個倒序,倒序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); 

 

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