剑指Offer——(44)翻转单词顺序列
题目描述:
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
实现如下:
//这道题一开始理解错了。。。→_→
//以为是"student. a am I"转"I am a student.",应该是刚好相反的。。。
//先将字符串整体反转
//.tneduts a ma I
//再按照空格将字符串分割成不同的部分,依次反转
//student. a am I
//注意:
//1.判断输入字符串是否有效
//2.有可能输入的字符串中没有空格
class Solution
{public:void Reserve(string &str, int beginIndex, int endIndex){char tmp;for (; beginIndex < endIndex; ++beginIndex, --endIndex){tmp = str[beginIndex];str[beginIndex] = str[endIndex];str[endIndex] = tmp;}}string ReverseSentence(string str){if (str.empty())/防御性动作,判断str是否有效return str;Reserve(str, 0, str.size() - 1);//先将整个字符串反转int beginIndex = 0;//记录需要反转部分的起始下标int endIndex = 0;//记录需要反转部分的终止下标while (str[beginIndex] != '\0'){if (str[beginIndex] == ' ')//有可能是连续的空格,直接略过{++beginIndex;//起始和终止下标一起后移++endIndex;}else if (str[endIndex] == ' ' || str[endIndex] == '\0')//当终止下标所对应的元素为空格或'\0'时{Reserve(str,beginIndex, --endIndex);//反转这个部分beginIndex = ++endIndex;//反转之后,起始和终止下标统一}else//否则继续后移终止下标,继续寻找直到空格或'\0'++endIndex;}return str;}
};
剑指Offer——(44)翻转单词顺序列相关推荐
- 剑指offer:翻转单词顺序列
题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...
- 《剑指offer》翻转单词顺序列
题目:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"stud ...
- 剑指Offer之翻转单词顺序列
题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...
- 剑指Offer:翻转单词顺序 vs 左旋转字符串
题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内部的顺序不变.为简单起见 ,标点符号和普通字母一样处理.例如输入字符串"I am a student. ",则输出" ...
- 剑指offer T58-1翻转单词顺序
case1:借助一个辅助数组来实现,时间复杂度O(n),空间复杂度O(m)m为字符串s中的非空格元素个数 class Solution {public String reverseWords(Stri ...
- 【LeetCode】剑指 Offer 44. 数字序列中某一位的数字
[LeetCode]剑指 Offer 44. 数字序列中某一位的数字 文章目录 [LeetCode]剑指 Offer 44. 数字序列中某一位的数字 package offer;public clas ...
- 剑指 Offer II 108. 单词演变
链接:剑指 Offer II 108. 单词演变 题解: class Solution { public:int ladderLength(string beginWord, string endWo ...
- 剑指 Offer 44. 数字序列中某一位的数字
class Solution {public int findNthDigit(int n) {int digit = 1; // 该数的位数long start = 1; // 该位数的起始值,1位 ...
- 【LeetCode笔记】剑指 Offer 44. 数字序列中某一位的数字(Java、偏数学)
文章目录 题目描述 思路 && 代码 题目描述 比较偏数学的一道题..众所周知这类题代码量都不大,但是就是难想= = 思路 && 代码 这篇题解写得很好- 建议还是直接 ...
- 剑指offer之翻转链表
题目 输入一个链表,反转链表后,输出新链表的表头. 思路 水题,直接翻转即可,注意最后一步的链接 AC代码 class Solution {public:ListNode* ReverseList(L ...
最新文章
- 远程登录linux进程的状态_Linux实操篇 - 远程登录到Linux系统
- matlab_exercise(4)----第一题
- Leetcode 746. Min Cost Climbing Stairs
- Metrics.NET 项目
- git 不用clone整个远程仓库,只把特定的commit给fetch下来的方案
- 睡眠音频分割及识别问题(二)
- hue集成mysql报错_CDH5.7Hue使用sqoop导出mysql数据报错
- zabbix+ldap认证故障解决一例
- 浏览器兼容性问题和解决方案
- python输出星号等腰三角形_Python 打印矩形、直角三角形、等腰三角形、菱形
- ElasticSearch索引模块
- 佐客牛排机器人餐厅_测评全球首家机器人餐厅综合体,AI味道竟不输“大厨”?...
- 关于java Socket与C#通信编码问题小结
- C 语言 —— 循环结构
- pygame-KidsCanCode系列jumpy-part17-mask-collide碰撞检测
- 系统学习SSH(一)--SSH
- 超声波雷达驱动(Elmos524.03Elmos524.09)
- 沈国军标签:零售业叛徒 马云的朋友 无所不能的怪兽
- RabbitMQ-dlx死信队列
- 送一台高清显示器(控制人数,限时删)
热门文章
- cad计算机面积和周长,cad怎么算面积和周长 cad算面积和周长方法
- centos 6.5 系统下 maba服务安装与配置
- Selling with Scarcity
- Waterdrop帮你快速玩转Spark数据处理
- 参与GlobalPlatform标准体系建设 百度函谷成就极致安全
- BertTokenizer警告Be aware, overflowing tokens are not returned for the setting you have chosen, i.e. s
- 股票数据常见的两种获取方法是什么?
- 删除数据库中重复数据的几个方法(转)
- iOS Platform文件百度云盘下载地址
- 忘记Excel文件保护密码,怎么解?