c++-字符串旋转
2017-12-15 10:23
148 查看
题目描述
对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。
测试样例:
"ABCDEFGH",8,4
返回:"FGHABCDE"
这道题很容易,解题思路也有很多,首先给出本人的解答:
利用了string类型中的for语句
class StringRotation { public: string rotateString(string A, int n, int p) { // write code here string res1; string res2; int len=0; for(auto c : A){ if(len<=p) res1.push_back(c); else if(len>p) res2.push_back(c); len++; } res1=res2+res1; return res1; } };
但由于用了两个字符串,导致内存空间消耗较大。
参考其他答案:只显性用了一个字符串
class StringRotation { public: string rotateString(string A, int n, int p) { // write code here if(p==n-1) return A; string B; B=A.substr(p+1)+A.substr(0,p+1); return B; } };
利用了string的substr,复制子字符串函数来完成。
相关文章推荐
- 翻转句子中单词的顺序和字符串的旋转操作 c++面试题
- 纪念逝去的岁月——C/C++字符串旋转
- 旋转字符串的判断——KMP实现 (C++)
- (C++)剑指offer-43:左旋转字符串(知识迁移能力)
- C++字符串旋转3种方法实现
- 左旋转字符串 C++实现
- C++字符串旋转
- (剑指offer)左旋转字符串C++
- C++判断两个字符串是否互为旋转词
- C++ 求旋转字符串中的最小值
- LintCode 8.旋转字符串 C++
- LintCode C++代码旋转字符串
- 如何判断字符串的旋转词
- C++时间格式转换函数(字符串转整型)
- c++中输入字符串
- c++字符串处理函数
- c++学习笔记(2)字符串
- C++面试笔试题目(选2)(字符串,原码反码补码)
- c++实验5--统计输出字符串中(大/小写)字母个数,数字个数及其它字符个数。
- c++ 递归将输入的整数 转换成字符串输出