【剑指Offer】面试题42:反转单词顺序
来源:互联网 发布:mac度数符号怎么打 编辑:程序博客网 时间:2024/05/19 00:09
整理自剑指Offer
一:题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
二:解题思路
第一步:翻转句子中所有字符
如“I am a student.” --->".tneduts a ma I"
此时不但翻转了句子中单词的顺序,连单词内的字符的顺序也被翻转了
第二步:再翻转句子中每一个字符的顺序,就得到了“student. a am I”
三:代码实现
class Solution {public: //转换字符串的一段 void Reverse(string &str,int start,int end){ while(start<end){ char temp=str[start]; str[start]=str[end]; str[end]=temp; start++; end--; } } string ReverseSentence(string str) { //边界条件 if(str.empty()) return str; //翻转整个字符串 Reverse(str,0,str.size()-1); int i; //记录遍历到字符串的位置 int start=0; //单词的开始位置 int end =0; //单词的结束位置 for(i=0;i<str.size();i++){ //跳过空格,空格可能不止一个 while(i<str.size() && str[i]==' ') i++; start=i; //记录单词的第一个位置 end=i; //寻找单词最后一个位置 while(i<str.size() && str[i]!=' ') i++; end=i-1; //翻转单词 Reverse(str,start,end); } return str; } };
阅读全文
0 0
- 剑指Offer:面试题42 反转单词顺序
- 【剑指Offer】面试题42:反转单词顺序
- 剑指Offer面试题42(Java版):反转单词顺序VS左旋转字符串
- 剑指offer面试题[42]-反转单词顺序VS左旋转字符串
- 《剑指Offer》面试题:翻转单词顺序
- 剑指Offer----面试题42(1):翻转单词顺序
- 剑指offer 面试题42 翻转单词顺序
- 面试题42:翻转单词顺序(句子反转)
- (剑指Offer)面试题45:翻转单词顺序列
- 【剑指offer】面试题58(1):翻转单词顺序
- 剑指Offer 42反转单词顺序 vs左旋转字符串
- 剑指offer面试题42翻转单词顺序VS左旋字符串
- [剑指offer][面试题42]翻转单词顺序 VS 左旋转字符串
- 【剑指offer】面试题42:单词翻转顺序&左右旋转字符串
- [剑指offer]面试题42:翻转单词顺序,左旋转字符串
- 剑指offer 面试题42 翻转单词顺序 | 左旋转字符串
- 剑指offer 面试题42—翻转单词顺序VS左旋转字符串
- 《剑指Offer》学习笔记--面试题42:翻转单词顺序VS坐旋转字符串
- 1-3:盒子、浮动
- 用C语言编写猜数字游戏
- html image图片标签
- 水题。。。832A
- Spring bean注入为null
- 【剑指Offer】面试题42:反转单词顺序
- 安卓中怎隐藏标题和状态栏
- 嵌入式学习16(文件IO)
- ListView的多条目
- 排成一条线的硬币
- 1-4:定位、z-index
- 异常的解决
- csv文件转化为数组及数组的切片
- 给你的电脑降降温!!!!!!