题目描述:

牛客最近来了一个新员工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)翻转单词顺序列相关推荐

  1. 剑指offer:翻转单词顺序列

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...

  2. 《剑指offer》翻转单词顺序列

    题目:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"stud ...

  3. 剑指Offer之翻转单词顺序列

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...

  4. 剑指Offer:翻转单词顺序 vs 左旋转字符串

    题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内部的顺序不变.为简单起见 ,标点符号和普通字母一样处理.例如输入字符串"I am a student. ",则输出" ...

  5. 剑指offer T58-1翻转单词顺序

    case1:借助一个辅助数组来实现,时间复杂度O(n),空间复杂度O(m)m为字符串s中的非空格元素个数 class Solution {public String reverseWords(Stri ...

  6. 【LeetCode】剑指 Offer 44. 数字序列中某一位的数字

    [LeetCode]剑指 Offer 44. 数字序列中某一位的数字 文章目录 [LeetCode]剑指 Offer 44. 数字序列中某一位的数字 package offer;public clas ...

  7. 剑指 Offer II 108. 单词演变

    链接:剑指 Offer II 108. 单词演变 题解: class Solution { public:int ladderLength(string beginWord, string endWo ...

  8. 剑指 Offer 44. 数字序列中某一位的数字

    class Solution {public int findNthDigit(int n) {int digit = 1; // 该数的位数long start = 1; // 该位数的起始值,1位 ...

  9. 【LeetCode笔记】剑指 Offer 44. 数字序列中某一位的数字(Java、偏数学)

    文章目录 题目描述 思路 && 代码 题目描述 比较偏数学的一道题..众所周知这类题代码量都不大,但是就是难想= = 思路 && 代码 这篇题解写得很好- 建议还是直接 ...

  10. 剑指offer之翻转链表

    题目 输入一个链表,反转链表后,输出新链表的表头. 思路 水题,直接翻转即可,注意最后一步的链接 AC代码 class Solution {public:ListNode* ReverseList(L ...

最新文章

  1. 远程登录linux进程的状态_Linux实操篇 - 远程登录到Linux系统
  2. matlab_exercise(4)----第一题
  3. Leetcode 746. Min Cost Climbing Stairs
  4. Metrics.NET 项目
  5. git 不用clone整个远程仓库,只把特定的commit给fetch下来的方案
  6. 睡眠音频分割及识别问题(二)
  7. hue集成mysql报错_CDH5.7Hue使用sqoop导出mysql数据报错
  8. zabbix+ldap认证故障解决一例
  9. 浏览器兼容性问题和解决方案
  10. python输出星号等腰三角形_Python 打印矩形、直角三角形、等腰三角形、菱形
  11. ElasticSearch索引模块
  12. 佐客牛排机器人餐厅_测评全球首家机器人餐厅综合体,AI味道竟不输“大厨”?...
  13. 关于java Socket与C#通信编码问题小结
  14. C 语言 —— 循环结构
  15. pygame-KidsCanCode系列jumpy-part17-mask-collide碰撞检测
  16. 系统学习SSH(一)--SSH
  17. 超声波雷达驱动(Elmos524.03Elmos524.09)
  18. 沈国军标签:零售业叛徒 马云的朋友 无所不能的怪兽
  19. RabbitMQ-dlx死信队列
  20. 送一台高清显示器(控制人数,限时删)

热门文章

  1. cad计算机面积和周长,cad怎么算面积和周长 cad算面积和周长方法
  2. centos 6.5 系统下 maba服务安装与配置
  3. Selling with Scarcity
  4. Waterdrop帮你快速玩转Spark数据处理
  5. 参与GlobalPlatform标准体系建设 百度函谷成就极致安全
  6. BertTokenizer警告Be aware, overflowing tokens are not returned for the setting you have chosen, i.e. s
  7. 股票数据常见的两种获取方法是什么?
  8. 删除数据库中重复数据的几个方法(转)
  9. iOS Platform文件百度云盘下载地址
  10. 忘记Excel文件保护密码,怎么解?