欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

面试题58 - II. 左旋转字符串

发布时间:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的这篇文章主要介绍了 面试题58 - II. 左旋转字符串 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

2020-06-18

1.题目描述

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

2.题解

1.空间换时间:将左右部分各放在string中再进行拼接 2.时间换空间:对字符串进行三次翻转

3.代码

class Solution { public:string reverseLeftWords(string s,int n) {int leng=s.length();string left = s.substr(0,n);string right = s.substr(n,leng-n+1);right+=left;return right;} }; class Solution { public:void resverse(string &s,int l,int h){int mid=(l+h)/2;for (int i=l;i<=mid;i++){char tmp=s[i];s[i]=s[h-i+l];s[h-i+l]=tmp;}}string reverseLeftWords(string s,int n) {int len=s.length();resverse(s,0,n-1);resverse(s,n,len-1);resverse(s,0,len-1);return s;} };

总结

以上是生活随笔为你收集整理的面试题58 - II. 左旋转字符串的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。