剑指offer面试题[42]-反转单词顺序VS左旋转字符串
来源:互联网 发布:软件开发员 编辑:程序博客网 时间:2024/05/16 01:38
题目1:
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
class Solution {public: string LeftRotateString(string str, int n) { int len=str.length(); if(len<=0||n<=0) return str; //假设输入str为abcXYZdef,n=3 Reverse(str,0,n-1); //反转前n个字符,得到cbaXYZdef Reverse(str,n,len-1); //反转第n个字符后面所有的字符cbafedZYX Reverse(str,0,len-1); //反转整个字符串XYZdefabc return str; } void Reverse(string &str,int begin,int end) { int temp; while(begin<end) { temp=str[begin]; str[begin]=str[end]; str[end]=temp; begin++,end--; } }};
题目2:
将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割
示例1
输入
I like beijing.
输出
beijing. like I
#include<iostream> #include<string> #include<vector> using namespace std; void Reverse(string &str,int begin,int end){ int temp; while(begin<end) { temp=str[begin]; str[begin]=str[end]; str[end]=temp; begin++,end--; }}int main(){ string str; while(getline(cin,str)) { int len=str.length(); Reverse(str,0,len-1); int p1=0,p2=0; while(p2<len) { while(str[p2]!='\0'&&str[p2]!=' ') p2++; Reverse(str,p1,p2-1); p2++; p1=p2; } for(int i=0;i<len;i++) { cout<<str[i]; } }}/*int main() { string str; while(getline(cin,str)) { int length=str.length(); string temp; vector<string> vec; for(int i=0;i<length;i++) { if(str[i]!=' ') temp.push_back(str[i]); else { vec.push_back(temp); temp.clear(); //这里一定要清除 } } vec.push_back(temp); //需要把最后一个单词压入到vec中 for(int j=vec.size()-1;j>0;j--) //倒序输出 cout<<vec[j]<<' '; cout<<vec[0]<<endl; }}*/
阅读全文
0 0
- 剑指Offer面试题42(Java版):反转单词顺序VS左旋转字符串
- 剑指offer面试题[42]-反转单词顺序VS左旋转字符串
- 剑指Offer 42反转单词顺序 vs左旋转字符串
- [剑指offer][面试题42]翻转单词顺序 VS 左旋转字符串
- 剑指offer 面试题42—翻转单词顺序VS左旋转字符串
- 【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】
- 剑指offer-面试题42:翻转单词顺序VS左旋转字符串
- 剑指offer之面试题42翻转单词顺序VS左旋转字符串
- 剑指offer--面试题42:翻转单词顺序列 vs 左旋转字符串
- 剑指offer——面试题42:翻转单词顺序VS左旋转字符串
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串
- 【剑指offer】面试题42-翻转单词顺序VS左旋转字符串
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串
- 剑指offer 面试题42 翻转单词顺序 VS 左旋转字符串
- 剑指offer面试题 翻转单词顺序 VS 左旋转字符串
- 剑指Offer面试题:34.翻转单词顺序VS左旋转字符串
- 面试题42:翻转单词顺序VS左旋转字符串
- 面试题42:翻转单词顺序VS左旋转字符串
- grep命令详解
- 对比a,b两个表相同字段 数据的差异
- Hbase批量入库
- instance的详细创建过程
- Constellation CodeForces
- 剑指offer面试题[42]-反转单词顺序VS左旋转字符串
- 【log4j】【1】maven配置log4j
- 最大最小蚁群算法求解TSP商旅问题
- fullPage.js学习笔记
- Vue手脚架的搭建
- Tiny4412上编写SPI驱动程序驱动NRF24L01 2.4G无线模块
- 【参考】怎么查看境外服务器域名被墙
- iis apache nginx解析漏洞
- Eclipse如何修改Web项目的名称