- 采用三次翻转的经典解法
-
void Swap(char *a, char *b)
-
{
-
char temp = *a;
-
*a = *b;
-
*b = temp;
-
}
-
-
void Reverse(char *str, int left, int right)
-
{
-
if(str == NULL || left >= right)
-
{
-
return;
-
}
-
while(left < right)
-
{
-
Swap(&str[left], &str[right]);
-
left++;
-
right--;
-
}
-
}
-
-
void RightShift(char *str, int k)
-
{
-
if(str == NULL)
-
{
-
return;
-
}
-
int length = strlen(str);
-
k = k % length;
-
-
Reverse(str, 0, k - 1);
-
Reverse(str, k , length - 1);
-
Reverse(str, 0 , length - 1);
- }
将一个n元一维向量向左旋转i个位置。例如,当n = 8且i = 3时,向量abcdefgh旋转为defghabc
最新推荐文章于 2016-01-17 11:30:46 发布
