[剑指Offer] 44.翻转单词顺序列
题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
【思路】先把由空格分割的每个字符串翻转,最后翻转整个字符串。
class Solution
{
public:
string ReverseSentence(string str)
{
int len = str.length();
int num = ;
int pos[len];
memset(pos, , sizeof(pos));
//得到所有空格的位置,多个连续空格也可以
for(int i = ; i < len; i ++)
{
if(str[i] == ' ')
pos[num++] = i;
}
if(num == ) return str;
if(num == )
{
reverse(str.begin(),str.begin() + pos[]);
reverse(str.begin() + pos[] + ,str.end());
reverse(str.begin(),str.end());
return str;
}
for(int i = ; i < num; i ++)
{
if(i == ) //翻转第一个空格前面的字符串
reverse(str.begin(),str.begin() + pos[i]);
else if(i == num - ) //翻转最后一个空格之后的字符串
reverse(str.begin() + pos[i] + ,str.end());
else //翻转两空格之间的字符串
reverse(str.begin() + pos[i - ] + ,str.begin() + pos[i]);
}
reverse(str.begin(),str.end());
return str;
}
};
[剑指Offer] 44.翻转单词顺序列的更多相关文章
- 《剑指offer》翻转单词顺序列
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:
- Go语言实现:【剑指offer】翻转单词顺序列
该题目来源于牛客网<剑指offer>专题. 例如,"student. a am I",正确的句子应该是"I am a student." Go语言实 ...
- 剑指Offer 44. 翻转单词顺序列 (字符串)
题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...
- 【剑指Offer】翻转单词顺序列 解题报告(Python)
[剑指Offer]翻转单词顺序列 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题 ...
- 【Java】 剑指offer(58-1) 翻转单词顺序
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变 ...
- 【剑指offer】翻转单词顺序
转载请注明出处:http://blog.csdn.net/ns_code/article/details/27372033 题目描写叙述: JOBDU近期来了一个新员工Fish,每天早晨总是会拿着一本 ...
- 【剑指offer】翻转单词顺序,C++实现
原创博文,转载请注明出处! 本题牛客网地址 本题代码的github地址 本系列文章的索引地址 # 题目 # 思路 两次翻转,第一次翻转整个句子,第二次翻转每个单词(单词之间用逗号隔开) # ...
- 剑指offer44:翻转单词顺序列
1 题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“stude ...
- 剑指 Offer 44. 数字序列中某一位的数字 + 找规律 + 数位
剑指 Offer 44. 数字序列中某一位的数字 Offer_44 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author Wale ...
随机推荐
- AngularJS-Learning ui-router angular-transitions
https://github.com/mgechev/AngularJS-Learning https://github.com/angular-ui/ui-router https://github ...
- Python-内置函数4
import time # 返回时间戳 t=time.time() print(t) name="one" ''' bin() oct() hex() bytes() ascii( ...
- thinkphp5
分页: thinkphp5分页默认只带page参数 在使用form表单method='get'传递关键字来筛选: 保证每次刷新依旧带上筛选参数 但遇到分页时,下面的分页默认自带page,没有之前筛选的 ...
- 前端开发工程师 - 05.产品前端架构 - 协作流程 & 接口设计 & 版本管理 & 技术选型 &开发实践
05.产品前端架构 第1章--协作流程 WEB系统 角色定义 协作流程 职责说明 第2章--接口设计 概述 接口规范 规范应用 本地开发 第3章--版本管理 见 Java开发工程师(Web方向) - ...
- AngularJS 初探
AngularJS,诞生于2009年,由Misko Hevery等人创建,后为Google所收购.这是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为 ...
- appium启动APP配置参数:
一.Android启动app python启动脚本如下: from appium import webdriver desired_caps = {} desired_caps['plat ...
- 【递归入门】组合+判断素数:dfs(递归)
题目描述 已知 n 个整数b1,b2,…,bn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和. 例如当 n=4,k=3,4 个整数分别为 3,7,12, ...
- c++容器 STL
2019-01-24 22:30:32 记录学习PAT的一些知识,有待更新 注:本文是对Algorithm 算法笔记 的总结 C++标准库模板(Standard Template Library,ST ...
- 理解Python中的__builtin__和__builtins__
以Python 2.7为例,__builtin__模块和__builtins__模块的作用在很多情况下是相同的. 但是,在Python 3+中,__builtin__模块被命名为builtins. 所 ...
- chameleon-Mini(迷你变色龙)
Chameleon Mini(迷你变色龙)是一个比一般信用卡稍大的小型开发板,是开源产品. 如图 Chameleon Mini可以完全复制许多商业非接触式智能卡包括UID卡,在内的全部内容,因此可以用 ...