左旋转字符串【剑指Offer, 语法题】
左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。
请定义一个函数实现字符串左旋转操作的功能。
比如输入字符串"abcdefg"和数字 2,该函数将返回左旋转 2 位得到的结果"cdefgab"。
注意:
数据保证 n 小于等于输入字符串的长度。
数据范围
输入字符串长度 [0,1000]。
样例
输入:"abcdefg" , n=2
输出:"cdefgab"
substr 指定长度复制
形式
s.substr(pos, len)
返回值
string,包含s中从pos开始的len个字符的拷贝
(pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s)
异常
若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;
若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾
点击查看代码
class Solution {
public:
string leftRotateString(string str, int n) {
return str.substr(n)+str.substr(0,n);
}
};
迭代器
string 有个构造函数:传入起点和结束点迭代器,可以构造出迭代器之间的字符串(左闭右开)。
分别构造出 s1 为 s[n] ~ 末尾。s2 为 s[0] ~ s[n-1]
返回 s1 + s2 即可.
点击查看代码
class Solution {
public:
string leftRotateString(string str, int n) {
string s1(str.begin() + n, str.end());
string s2 (str.begin(), str.begin() + n);
return s1 + s2;
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】