题目描述:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
代码解析:s.substr(pos, n),返回一个string,包含s中从pos开始的n个字符的拷贝。
代码:
class Solution {
public:
string reverseLeftWords(string s, int n) {
return (s+s).substr(n,s.size());
}
};
解题思路:先遍历n后面的元素,再遍历n前面的元素。
代码:
class Solution {
public:
string reverseLeftWords(string s, int n) {
string ans="";
for(int i=n;i<s.size();++i) ans+=s[i];
for(int i=0;i<n;++i) ans+=s[i];
return ans;
}
};
本文详细解析了字符串左旋转操作的两种实现方法。通过实例演示,介绍了如何利用字符串的子串复制功能完成左旋转,以及如何分两步遍历字符串实现相同功能。适合初学者理解和掌握字符串操作的基本技巧。
233

被折叠的 条评论
为什么被折叠?



