不知道怎么滴,总感觉自己想得过于复杂,看看别人做的,是真的简洁,向他人学习!
我的代码:
class Solution {
public:
string LeftRotateString(string str, int n)
{
char * des=(char*)malloc(sizeof(char)*n); //申请内存空间
strncpy(des,str.c_str(),n); //拷贝前n个字符
string r=str+des; //把原字符与拷贝的字符拼接起来
string res; //定义一个空的字符串
for(int i=n;i<r.size();i++)
{
res.push_back(r[i]); //往这个空串里放旋转之后的字符串
}
return res; //返回旋转之后的字符串
}
};
别人的:
class Solution {
public:
string LeftRotateString(string str, int n) {
string s = ""; //定义一个空字符串s
s = str.substr(0,n); //s为str从0到n的子串
str.erase(0,n); //擦除str中从0到n的字符
str = str + s; //将擦除字符的str与s进行拼接
return str; //返回str
}
};