日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 1451. 重新排列句子中的单词(桶排序)

發布時間:2024/7/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1451. 重新排列句子中的单词(桶排序) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

「句子」是一個用空格分隔單詞的字符串。給你一個滿足下述格式的句子 text :

  • 句子的首字母大寫
  • text 中的每個單詞都用單個空格分隔。

請你重新排列 text 中的單詞,使所有單詞按其長度的升序排列。
如果兩個單詞的長度相同,則保留其在原句子中的相對順序。

請同樣按上述格式返回新的句子。

示例 1: 輸入:text = "Leetcode is cool" 輸出:"Is cool leetcode" 解釋:句子中共有 3 個單詞,長度為 8"Leetcode" , 長度為 2"is" 以及長度為 4"cool" 。 輸出需要按單詞的長度升序排列,新句子中的第一個單詞首字母需要大寫。示例 2: 輸入:text = "Keep calm and code on" 輸出:"On and keep calm code" 解釋:輸出的排序情況如下: "On" 2 個字母。 "and" 3 個字母。 "keep" 4 個字母,因為存在長度相同的其他單詞, 所以它們之間需要保留在原句子中的相對順序。 "calm" 4 個字母。 "code" 4 個字母。示例 3: 輸入:text = "To be or not to be" 輸出:"To be or to be not"提示: text 以大寫字母開頭,然后包含若干小寫字母以及單詞間的單個空格。 1 <= text.length <= 10^5

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/rearrange-words-in-a-sentence
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • map<int,vector<string>> 存儲 單詞len,words
class Solution { public:string arrangeWords(string text) {text[0] += 32;//A 65, a 97,轉小寫map<int,vector<string>> m;//len,wordsistringstream in(text);string word, ans;while(in >> word) {m[int(word.size())].push_back(word);}for(auto& mi : m)for(auto& w : mi.second)ans += w+" ";ans.pop_back();//末尾空格刪除ans[0] -= 32;//首字符轉大寫return ans;} };

80 ms 17 MB

總結

以上是生活随笔為你收集整理的LeetCode 1451. 重新排列句子中的单词(桶排序)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。