1859. 将句子排序

一个 句子 指的是一个序列的单词用单个空格连接起来,且开头和结尾没有任何空格。每个单词都只包含小写或大写英文字母。

我们可以给一个句子添加 从 1 开始的单词位置索引 ,并且将句子中所有单词 打乱顺序 。

比方说,句子 “This is a sentence” 可以被打乱顺序得到 “sentence4 a3 is2 This1” 或者 “is2 sentence4 This1 a3” 。
给你一个 打乱顺序 的句子 s ,它包含的单词不超过 9 个,请你重新构造并得到原本顺序的句子。

示例 1:输入:s = "is2 sentence4 This1 a3"
输出:"This is a sentence"
解释:将 s 中的单词按照初始位置排序,得到 "This1 is2 a3 sentence4" ,然后删除数字。
示例 2:输入:s = "Myself2 Me1 I4 and3"
输出:"Me Myself and I"
解释:将 s 中的单词按照初始位置排序,得到 "Me1 Myself2 and3 I4" ,然后删除数字。

提示:

  • 2 <= s.length <= 200
  • s 只包含小写和大写英文字母、空格以及从 1 到 9 的数字。
  • s 中单词数目为 1 到 9 个。
  • s 中的单词由单个空格分隔。
  • s 不包含任何前导或者后缀空格。

解题思路

  1. 首先我们需要将被打乱顺序的所有单词分离出来,所以先需要使用空格来划分字符串,如果对于每一个被打乱顺序的单词,末尾都存在一个序号的标记,因此我们使用map,完成序号跟字符串的匹配关系
  2. 因为字符串它包含的单词不超过 9 个,因此序号最多只能为9,因此我们只需要按需要将字符串拼接起来就可以了。

代码

class Solution {public:string sortSentence(string s) {map<int,string> m;for (int i = 0; i < s.size(); ++i) {if (s[i]!=' '){int start=i;while (i < s.size()&&s[i]!=' '){i++;}m[s[i-1]-'0']=s.substr(start,i-start-1);}}string res("");for (int i = 1; i <= 9; ++i) {if (m.count(i))res.append(m[i]+" ");else break;}return res.substr(0,res.size()-1);}
};

1859. 将句子排序相关推荐

  1. LeetCode 1859. 将句子排序

    文章目录 1. 题目 2. 解题 1. 题目 一个 句子 指的是一个序列的单词用单个空格连接起来,且开头和结尾没有任何空格.每个单词都只包含小写或大写英文字母. 我们可以给一个句子添加 从 1 开始的 ...

  2. c++用向量给句子排序_用C ++对向量排序

    c++用向量给句子排序 介绍 (Introduction) In this tutorial, we are going to focus on Sorting a Vector in C++. 在本 ...

  3. LeetCode简单题之将句子排序

    题目 一个 句子 指的是一个序列的单词用单个空格连接起来,且开头和结尾没有任何空格.每个单词都只包含小写或大写英文字母. 我们可以给一个句子添加 从 1 开始的单词位置索引 ,并且将句子中所有单词 打 ...

  4. Leetcode1859:将句子排序

    /*** @param {string} s* @return {string}*/ var sortSentence = function(s) {// 字符串化为数组s = s.split(' ' ...

  5. leetcode 1859 又是一道字符串分隔的题目

    1859. 将句子排序 难度简单14收藏分享切换为英文接收动态反馈 一个 句子 指的是一个序列的单词用单个空格连接起来,且开头和结尾没有任何空格.每个单词都只包含小写或大写英文字母. 我们可以给一个句 ...

  6. Python 实例教学_ 04_排序

    Python 实例教程 Python 实例教学_ 04_排序 第十九课 [870. 优势洗牌](https://leetcode.cn/problems/advantage-shuffle/) [90 ...

  7. 华为od一面 / 二面复盘(可内推)

    今天一面二面一起过了, 总结一下面试经历 关于机试可以看我这篇博客, 华为od算法机试 一面简述 一面安排在上午11:00, 面试官先说明了面试的流程 自我介绍 2. 技术问题 3. 算法题 问了一些 ...

  8. 通关算法题之 ⌈字符串⌋

    字符串 171. Excel 表列序号 给你一个字符串 columnTitle ,表示 Excel 表格中的列名称,返回该列名称对应的列序号. A -> 1 B -> 2 C -> ...

  9. 基于句子嵌入的无监督文本摘要(附代码实现)

    ©PaperWeekly· 作者|高开远 学校|上海交通大学 研究方向|自然语言处理 本文主要介绍的是一个对多种语言的邮件进行无监督摘要抽取的项目,非常详细.文本摘要也是非常有意思的 NLP 任务之一 ...

最新文章

  1. JVM系列(之ClassLoader)
  2. [SinGuLaRiTy] 2017 百度之星程序设计大赛 初赛A
  3. GridView 自写分页 存储过程
  4. 论文解读 | 基于正则化图神经网络的脑电情绪识别
  5. 最常见的Java异常及其对Java开发人员的评价
  6. js List 对象封装【原创】
  7. STM32H743+CubeMX-学习FDCAN控制器上的TxFIFO
  8. m_Orchestrate learning system---二十二、html代码如何变的容易
  9. delphi listview动态添加图片_Java 添加PDF图章(印章)——图片图章、动态图章
  10. 2014年的六级考试即将来临,你们准备好了吗?
  11. 静态HTML网页设计作品 DIV布局 HTML5+CSS大作业——个人网页(6页) 网页制作期末大作业成品
  12. 西门子em235模块的功能_与其研究人工智能不如研究可编程控制器之德国西门子PLCS7200...
  13. 基于AT89S52单片机的GPS液晶显示定位系统
  14. SP2-0734: unknown command beginning lsnrctl st... - rest of line ignored.
  15. vb.net如何查询电脑麦克风收到声音_拔掉 MacBook,用 8GB 树莓派来办公的体验如何?...
  16. java 佛祖保佑_【Java】SpringBoot 佛祖保佑banner.txt
  17. iOS 当APP接收到推送消息时,对推送消息进行处理
  18. 一个屌丝程序猿的人生(四十五)
  19. SAP中MIGO收货时分清采购订单和订单收货的区别
  20. 远程桌面连接无法显示本地磁盘终极解决

热门文章

  1. Python程序控制结构
  2. C++小型公司管理系统
  3. LInux下du, df, top, free, pstack, su, sudo, adduser, password命令
  4. tiny4412初期环境搭建
  5. Makefile (二)
  6. 编写Shell脚本(批处理,一次执行多条命令)
  7. 连续四年百度Android岗必问面试题!Android校招面试指南
  8. 如何将.crt的ssl证书文件转换成.pem格式
  9. POJ 2777 - Count Color(线段树区间更新+状态压缩)
  10. css3-2 CSS3选择器和文本字体样式