北京如何优化网站,crm做的比较好的公司,深圳网站外包公司简介,企业邮箱可以自己申请吗1859. 将句子排序
一个 句子 指的是一个序列的单词用单个空格连接起来#xff0c;且开头和结尾没有任何空格。每个单词都只包含小写或大写英文字母。
我们可以给一个句子添加 从 1 开始的单词位置索引 #xff0c;并且将句子中所有单词 打乱顺序 。
比方说#xff0c;句子…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 200s 只包含小写和大写英文字母、空格以及从 1 到 9 的数字。s 中单词数目为 1 到 9 个。s 中的单词由单个空格分隔。s 不包含任何前导或者后缀空格。
解题思路
首先我们需要将被打乱顺序的所有单词分离出来所以先需要使用空格来划分字符串如果对于每一个被打乱顺序的单词末尾都存在一个序号的标记因此我们使用map完成序号跟字符串的匹配关系因为字符串它包含的单词不超过 9 个因此序号最多只能为9因此我们只需要按需要将字符串拼接起来就可以了。
代码
class Solution {
public:string sortSentence(string s) {mapint,string m;for (int i 0; i s.size(); i) {if (s[i]! ){int starti;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);}
};