翻轉單詞順序,輸入字串包含多個空格
阿新 • • 發佈:2021-02-01
技術標籤:C/C++程式設計序筆記leetcode
難度簡單62收藏分享切換為英文接收動態反饋
輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串"I am a student. ",則輸出"student. a am I"。
示例 1:
輸入: "the sky is blue
" 輸出:"blue is sky the
"
示例 2:
輸入: " hello world! " 輸出:"world! hello" 解釋: 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
示例 3:
輸入: "a good example" 輸出:"example good a" 解釋: 如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含一個。
解法:基本就是分隔字串的意思,參考部落格:https://blog.csdn.net/weixin_41579872/article/details/113280759
程式碼如下:
class Solution { public: string reverseWords(string s) { vector<string> res; string word=s; string result; stringstream input(word); while(input>>result) res.push_back(result); reverse(res.begin(),res.end()); string myrets=""; for(auto i:res) { myrets+=i; myrets+=' '; } myrets.pop_back(); return myrets; } };
執行用時:0 ms, 在所有C++提交中擊敗了100.00%的使用者
記憶體消耗:8.9 MB, 在所有C++提交中擊敗了33.50%的使用者