Day 3

面试题58 - II. 左旋转字符串
难度简单29字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"

暴力法解:
直接新建一个string,先插入从n到最后一位,然后再插入第1到n-1位。
class Solution {
public:
string reverseLeftWords(string s, int n) {
string new_s;
for(int i=n;i<s.size();i++){
new_s.push_back(s[i]);
}
for(int j=0;j<n;j++){
new_s.push_back(s[j]);
}
return new_s;
}
};

利用string类的方法:
substr函数的形式为s.substr(pos, n),
需要两个参数,第一个是开始位置,第二个是获取子串的长度
class Solution {
public:
string reverseLeftWords(string s, int n) {
return s.substr(n, s.size() - n) + s.substr(0, n);
}
};

全部评论

相关推荐

真烦好烦真烦:豆包润色了自己没看看吗,再说了,都说豆包是愚蠢且勤快的大学生,ds才是聪明的研究生,怎么敢让豆包写论文的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务