给一个字符串,将其按照单词顺序进行反转。

  • 例如
  • 需要注意的点
  • 分析
  • 代码
  • 总结

例如

  • 源字符串: “the sky is blue”
  • 反转后字符串:“blue is sky the”

需要注意的点

  • 每个单词长度不一样。
  • 空格需要特殊处理。

分析

  • 这道题目一看好简单,不就是反转字符串的翻版吗?是也不是
  • 先将整个字符串翻转,“the sky is blue” -> “eulb si yks eht”
  • 每个单词作为一个字符串单独翻转,“eulb si yks eht” -> “blue is sky the”

代码

 //字符串翻转fileprivate func charReverse<T>(_ chars: inout [T], _ start: Int, _ end: Int) {var s = start, e = endwhile s < e {swap(&s, &e)s += 1e -= 1}}//单词顺序进行反转func wordReverse(s: String?) -> String? {guard let s = s else {return nil}var chars = Array(s), start = 0charReverse(&chars, 0, chars.count - 1)for i in 0..<chars.count {if i == chars.count - 1 || chars[i + 1] == " " {charReverse(&chars, start, i)start = i + 2}}return String(chars)}

总结

时间复杂度 O(n)。

给一个字符串,将其按照单词顺序进行反转相关推荐

  1. 实现统计一个字符串中的每个单词出现的次数--基于Go语言

    实现统计一个字符串中的每个单词出现的次数–基于Go语言 package mainimport ("fmt""strings" )func main() {//统 ...

  2. ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。②集合A、B的差集③对分行输入的若干字符串按字典序(由小到大)进行排序并输出。

    文章目录 ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符 ②集合A.B的差集 ③对分行输入的若干字符串按字典序(由小到大)进行排序并输出. ①编写一个程序,从 ...

  3. 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串

    反转单词顺序以及左旋转字符串:输入一个英文句子,翻转句子中的单词顺序,单词内部的字母顺序是不变的 – I am a student. -> student. am I 第一步,翻转句子中的所有字 ...

  4. [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串

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

  5. 【剑指offer{40-44}】和为S的连续正数序列、和为S的两个数字、左旋转字符串、翻转单词顺序列、扑克牌顺子

    文章目录 和为S的连续正数序列 题目描述 C++代码 和为S的两个数字 题目描述 C++代码 左旋转字符串 题目描述 C++代码 翻转单词顺序列 题目描述 C++代码 扑克牌顺子 题目描述 C++代码 ...

  6. python输入一个英文句子、翻转句子中单词的顺序_Python反转句子中单词的顺序

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

  7. 用集合java字符串第一个单词_Java小程序 输入一个字符串,将每一个单词首字母大写...

    Java 小程序 01 输入一个字符串,将每一个单词首字母大写 1.首先写一个接收传入的单词,并将传入单词首字母大写.这一步比较简单,没什么好说的! private String titleCase ...

  8. 输入一个字符串,用子函数完成在字符串中找出ACSII码值最大的字符,将其放在第一个位置,并将该字符前的所有字符向后顺序移动

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容9]输入一个字符串,用子函数完成在字符串中找出ACSII码 ...

  9. 统计一个字符串中单词的个数

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p113 习题4 7.统计一个字符串中单词的个数.字符串中两个空格之间的非空格字符串可看做单词. #in ...

  10. 深信服:输入一个字符串,帮忙统计字符串里面的每个单词出现的次数,以及非法单词的次数。非法单词的定义为:包含数字(0-9)的单词

    深信服2018秋招笔试题: 输入一个字符串,帮忙统计字符串里面的每个单词出现的次数,以及非法单词的次数.非法单词的定义为:包含数字(0-9)的单词 输入一个字符串,长度小于1000,输入的字符仅包含( ...

最新文章

  1. 进程,线程与信息共享
  2. 计算机哪里看到32位还是64位,如何看电脑是32位还是64位?
  3. centos7 firewall指定IP与端口访问(常用)
  4. A Simple Math Problem(2020 ICPC 江西省省赛)
  5. Java用链表写图书管理_C语言链表实现图书管理系统
  6. redis stream java消息队列_Redis 异步消息队列与延时队列
  7. 第一次当项目经理压力大_项目经理不想被甩锅,你要这样做进度管理
  8. C++之explicit探究
  9. 9.6.1 三维数据可视化之曲面图
  10. DW的ajax简单应用,你离高薪 offer 只差一个接口自动化入门,我是认真的
  11. 金融财务数据分析报告PPT模板
  12. php怎么求阶乘_php递归函数求阶乘
  13. UG NX二次开发(C#)-同步建模-删除倒圆(圆角)
  14. 小程序文档整理之 -- API(调试接口)
  15. android立方体旋转动画,如何画出一个旋转的立方体
  16. python k线形态识别_python量化金融系列-K线分析、及形态捕捉
  17. excel表格怎么换行?3个方法,你一定不知道第3个
  18. 2021-03-21
  19. Wi-Fi基带芯片和Wi-Fi无线网卡设计方案
  20. 【工作】Amazon Fraud Detection

热门文章

  1. nltk词性标注的涵义
  2. java+poodle漏洞修复_如何修复 POODLE SSLv3 安全漏洞 (CVE-2014-3566)
  3. linu安装JDK1.8
  4. yolov5 deepsort 行人车辆 双向计数 跟踪检测 | 开源项目分享
  5. [20130827]A Short History of Nearly Everything[serial]
  6. 批处理遍历当前目录和子目录查找指定后缀名的文件并修改后缀名
  7. Markdown 简单美化
  8. Typo3 CVE201912747 反序列化漏洞分析
  9. 链路追踪Zipkin
  10. r语言员工离职_离职员工预测--python