左旋字符串
题目描述
字符串的旋转操作是把字符串前面的若干字符移到字符串的尾部. 定义一个函数实现字符串左旋转操作的功能. 不如, 输入字符串"abcdefg"和数字2, 该函数将返回左旋转两位等到的结果"cdefgab"
利用string的构造函数, 左闭右开原则, 偷懒了, 罪过罪过...
class Solution {
public:
string LeftRotateString(string str, int n) {
if (str.empty()) {
return str;
}
n %= str.length();
string str1(str.begin() + n, str.end());
string str2(str.begin(), str.begin() + n);
return str1+str2;
}
};
一个一个的移位, 没什么好说的
class Solution {
public:
string LeftRotateString(string str, int n) {
if (0 == str.size())
return str;
int end = str.length() - 1;
n = n % (end + 1);
//n %= str.length();
for (int i = 0; i < n; i++) {
char temp = str[0];
for (int j = 0; j < str.length() - 1; j++) {
str[j] = str[j + 1];
}
str[end] = temp;
}
return str;
}
};