剑指offer面试题[42]-反转单词顺序VS左旋转字符串
题目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个字符,得到cbaXYZdefReverse(str,n,len-1); //反转第n个字符后面所有的字符cbafedZYXReverse(str,0,len-1); //反转整个字符串XYZdefabcreturn 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--;}}
};
将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I
输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割
输入
I like beijing.
输出
#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;}
}
*/
剑指offer面试题[42]-反转单词顺序VS左旋转字符串相关推荐
- 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
反转单词顺序以及左旋转字符串:输入一个英文句子,翻转句子中的单词顺序,单词内部的字母顺序是不变的 – I am a student. -> student. am I 第一步,翻转句子中的所有字 ...
- [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串
面试题42:翻转单词顺序 VS左旋转字符串 题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a st ...
- 剑指 Offer 笔记: T58 - I. 翻转单词顺序
T58 - I. 翻转单词顺序 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student. &qu ...
- 剑指Offer:翻转单词顺序 vs 左旋转字符串
题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内部的顺序不变.为简单起见 ,标点符号和普通字母一样处理.例如输入字符串"I am a student. ",则输出" ...
- 翻转单词顺序与左旋转字符串
题目一:输入一个英文句子,翻转句子中单词的顺序.但是单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student.",则输出" ...
- 翻转单词顺序和左旋转字符串
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理. 例如输入字符串"I am a student.",则输出"stu ...
- 剑指Offer - 面试题24. 反转链表(遍历/递归)
1. 题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4-&g ...
- 剑指offer面试题[16]-反转链表
题目描述 输入一个链表,反转链表后,输出链表的所有元素. 解决与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的的.很多面试官喜欢出链表相关的问题,就是想通过指针操作来考查应聘者的编 ...
- 剑指offer面试题24. 反转链表(双指针)
题目描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 思路 详见链接 代码 class Solution:def reverseList(self, head:ListN ...
最新文章
- asp.net 域名欺骗式开发
- 逻辑心理测试题:三囚分汤
- 基于场效应管2N3819制作非接触电压检测 - 购买到假货了
- php无法加载Memcache缓存模块问题及Memcache的安装
- Qt文档阅读笔记-Q_CLASSINFO官方解析与实例
- 独角兽导航带音乐带后台带客服
- 【BZOJ1607】轻拍牛头,筛一筛
- TLS握手、中断恢复与证书中心的原因
- dex2jar工具及问题
- pandas报错:columns overlap but no suffix specified
- 一些数据采集卡使用过程中常见问题
- cpci无法检索_图书馆无法进行CPCI-S检索 - 北京大学图书馆(PKULibrary)版 - 北大未名BBS...
- 大数据命令,一文在手,全部都有(送纯净版文档)
- 布袋除尘器过滤风速多少_布袋除尘器过滤风速的选择
- java后端扇形图实现
- 算法与程序设计相关知识
- Oracle Check约束
- jQuery 用click() 失效,不起作用,直接父级使用on事件委托不好使
- 基于java的项目总结
- 《React扩展知识一》setState更新状态2种写法/ lazyLoad / Fragment / Context / Hooks