算法-字符串 循环左移

1、字符串循环左移

例:abcdef 循右移n位 如n=2

思路:(X'Y‘)’ =YX    ‘即逆序

及X={a b }  Y={c d e f}

X'=b a    Y'=f e d c

该算法时间复杂度O(N) 空间复杂度O(1)

void ReverseString(char* s ,int from,int to)

{  
  whilefrom<to)

  {  
          char t=s[from]
          s[from++]=s[to]
          s[to--]=t;             

  }

       
}
void LeftRotateString(char* s,int n,int m)
{
     m %=n;//对n取模,循环左移7位 跟循环左移1位是一样的
     ReverseString(s,0,m-1);
     ReverseString(s,m,n-1);
     ReverseString(s,0,n-1); 
}

猜你喜欢

转载自www.cnblogs.com/taogepureyeahman/p/9082097.html
今日推荐