LintCode容易题练习——8. 旋转字符串
2018-01-27 13:47
507 查看
对于字符串
以上是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();
}// 最后是赋值。
}
}
};
"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();
}// 最后是赋值。
}
}
};
相关文章推荐
- LintCode容易题练习——8. 旋转字符串
- 日常练习:lintcode 8:旋转字符串
- lintcode 容易题:Reverse Words in a String 翻转字符串
- LintCode 8 旋转字符串
- lintcode ----旋转字符串
- lintcode 容易题:Unique Characters 判断字符串是否没有重复字符
- LintCode_008_旋转字符串
- lintcode 容易题:Recover Rotated Sorted Array恢复旋转排序数组
- lintcode :旋转字符串
- lintcode 8.旋转字符串
- LintCode_008_旋转字符串
- 日常练习:lintcode 53. 翻转字符串
- LintCode:旋转字符串
- LintCode-[容易] 211. 字符串置换
- LintCode C++代码旋转字符串
- Lintcode 容易 python 判断字符串是否没有重复字符
- Lintcode8——旋转字符串
- LintCode-8.旋转字符串
- LintCode之旋转字符串
- LintCode之8 旋转字符串