面试题58 - II. 左旋转字符串
生活随笔
收集整理的这篇文章主要介绍了
面试题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. 左旋转字符串的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Android 计算Bitmap大小
- 下一篇: poj12652954 [皮克定理 格点