leetcode题库练习_左旋转字符串
2024-09-06 10:13:35
题目:左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
示例
输入 : s = "abcdefg" , n = 2
输出 : s = "cdefgab"
解题思路:
编程语言:C++
使用两个for循环,第一个for循环将n之后的字符串存入新字符串,第二个for循环将0~n的字符串存入新字符串
时间复杂度:接近O(n2)
代码实现如下
class Solution {
public:
string reverseLeftWords(string s, int n) {
string new1="";
for(int i=n;i<s.length();i++){
new1 = new1 + s[i];
}
for(int i =0;i<n;i++){
new1 = new1 + s[i];
}
return new1;
}
};
执行用时:352 ms
内存消耗:339.5 MB
就结果来看,这种解法虽然能完成题目的要求,但无论从时间还是空间的角度来看,都不是最优的。更简单的解法可以直接调用substr()进行字符串拼接。
小白投稿,还请大家多多指教!
最新文章
- curl实现发送Get和Post请求(PHP)
- php emoji处理微信表情
- 网页加载图片问题 插件lazyload
- 前端优化:DNS预解析提升页面速度
- 父页面 调用iframe方法
- JavaScript与Flash的通信
- 界面编程模仿篇(QQ登录界面逼真篇)
- uva 10825 - Anagram and Multiplication(暴力)
- 计蒜客NOIP2017提高组模拟赛(四)day1
- 网页三剑客:HTML+CSS+JavaScript 之JavaScript
- 使用Flame Graph进行系统性能分析
- angular 1.2.29版本下 动态添加多个表单、 校验全部、 提交 、ng-form方案
- Macro_Average和Micro_Average准则的选择标准
- 教你如何开启/关闭ubuntu防火墙
- [C#]读取不同版本的excel文件的方法
- 内存映射函数remap_pfn_range学习——代码分析(3)
- (转) rabbitmq应用场景
- ARM上电启动及Uboot代码分析
- php面向对象编程_2
- python nose测试