给一个字符串,将其按照单词顺序进行反转
给一个字符串,将其按照单词顺序进行反转。
- 例如
- 需要注意的点
- 分析
- 代码
- 总结
例如
- 源字符串: “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)。
给一个字符串,将其按照单词顺序进行反转相关推荐
- 实现统计一个字符串中的每个单词出现的次数--基于Go语言
实现统计一个字符串中的每个单词出现的次数–基于Go语言 package mainimport ("fmt""strings" )func main() {//统 ...
- ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。②集合A、B的差集③对分行输入的若干字符串按字典序(由小到大)进行排序并输出。
文章目录 ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符 ②集合A.B的差集 ③对分行输入的若干字符串按字典序(由小到大)进行排序并输出. ①编写一个程序,从 ...
- 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
反转单词顺序以及左旋转字符串:输入一个英文句子,翻转句子中的单词顺序,单词内部的字母顺序是不变的 – I am a student. -> student. am I 第一步,翻转句子中的所有字 ...
- [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串
面试题42:翻转单词顺序 VS左旋转字符串 题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a st ...
- 【剑指offer{40-44}】和为S的连续正数序列、和为S的两个数字、左旋转字符串、翻转单词顺序列、扑克牌顺子
文章目录 和为S的连续正数序列 题目描述 C++代码 和为S的两个数字 题目描述 C++代码 左旋转字符串 题目描述 C++代码 翻转单词顺序列 题目描述 C++代码 扑克牌顺子 题目描述 C++代码 ...
- python输入一个英文句子、翻转句子中单词的顺序_Python反转句子中单词的顺序
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如:输入'I am a student.',则输出'student. ...
- 用集合java字符串第一个单词_Java小程序 输入一个字符串,将每一个单词首字母大写...
Java 小程序 01 输入一个字符串,将每一个单词首字母大写 1.首先写一个接收传入的单词,并将传入单词首字母大写.这一步比较简单,没什么好说的! private String titleCase ...
- 输入一个字符串,用子函数完成在字符串中找出ACSII码值最大的字符,将其放在第一个位置,并将该字符前的所有字符向后顺序移动
<程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容9]输入一个字符串,用子函数完成在字符串中找出ACSII码 ...
- 统计一个字符串中单词的个数
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p113 习题4 7.统计一个字符串中单词的个数.字符串中两个空格之间的非空格字符串可看做单词. #in ...
- 深信服:输入一个字符串,帮忙统计字符串里面的每个单词出现的次数,以及非法单词的次数。非法单词的定义为:包含数字(0-9)的单词
深信服2018秋招笔试题: 输入一个字符串,帮忙统计字符串里面的每个单词出现的次数,以及非法单词的次数.非法单词的定义为:包含数字(0-9)的单词 输入一个字符串,长度小于1000,输入的字符仅包含( ...
最新文章
- 进程,线程与信息共享
- 计算机哪里看到32位还是64位,如何看电脑是32位还是64位?
- centos7 firewall指定IP与端口访问(常用)
- A Simple Math Problem(2020 ICPC 江西省省赛)
- Java用链表写图书管理_C语言链表实现图书管理系统
- redis stream java消息队列_Redis 异步消息队列与延时队列
- 第一次当项目经理压力大_项目经理不想被甩锅,你要这样做进度管理
- C++之explicit探究
- 9.6.1 三维数据可视化之曲面图
- DW的ajax简单应用,你离高薪 offer 只差一个接口自动化入门,我是认真的
- 金融财务数据分析报告PPT模板
- php怎么求阶乘_php递归函数求阶乘
- UG NX二次开发(C#)-同步建模-删除倒圆(圆角)
- 小程序文档整理之 -- API(调试接口)
- android立方体旋转动画,如何画出一个旋转的立方体
- python k线形态识别_python量化金融系列-K线分析、及形态捕捉
- excel表格怎么换行?3个方法,你一定不知道第3个
- 2021-03-21
- Wi-Fi基带芯片和Wi-Fi无线网卡设计方案
- 【工作】Amazon Fraud Detection
热门文章
- nltk词性标注的涵义
- java+poodle漏洞修复_如何修复 POODLE SSLv3 安全漏洞 (CVE-2014-3566)
- linu安装JDK1.8
- yolov5 deepsort 行人车辆 双向计数 跟踪检测 | 开源项目分享
- [20130827]A Short History of Nearly Everything[serial]
- 批处理遍历当前目录和子目录查找指定后缀名的文件并修改后缀名
- Markdown 简单美化
- Typo3 CVE201912747 反序列化漏洞分析
- 链路追踪Zipkin
- r语言员工离职_离职员工预测--python