您的位置:首页 > 其它

LintCode容易题练习——8. 旋转字符串

2018-01-27 13:47 507 查看
对于字符串 
"abcdefg"
.

offset=0 => "abcdefg"
offset=1 => "gabcdef"
offset=2 => "fgabcde"
offset=3 => "efgabcd"


以上是LintCode上给出的样例。

对于此问题,我分解成了三个部分。

分别是判断,复制,赋值。

void rotateString(string &str, int offset) {
if(offset == str.size() || str.size() == 0)
{
return;
} // 第一步,判读string长度以及偏移量,如果旋转后与原样例相同,则直接返回。
while(offset > str.size())
{
offset = offset - str.size();
} // 如果偏移量超出string长度,则进行减小。
string strcopy;
for(int i = 0;i < str.size();i++)
{
strcopy[i] = str[i];
}// 复制
for(int i = 0;i < str.size();i++)
{
str[offset] = strcopy[i];
offset++;
if(offset >= str.size())
{
offset -= str.size();
}// 最后是赋值。
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: