您的位置:首页 > 其它

Trick(三)——循环左移的实现

2016-03-20 23:08 274 查看
循环左移(ROL,Ring Shift Left)可用于字符串的旋转当中。

abcdef ⇒ defabc

可看做整个字符串循环左移三位;

// 循环左移1位,作为左移 k 位的辅助函数
// n 标识字符串的长度
void ROL1(char* s, int n)
{
char t = s[0];
for (int i = 1; i < n; ++i)
s[i-1] = s[i];
s[n-1] = t;
}
// 循环左移 k 位
void ROLK(char* s, int n, int k)
{
while (k--)
ROL1(s, n);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: