1. 程式人生 > 其它 >翻轉單詞順序,輸入字串包含多個空格

翻轉單詞順序,輸入字串包含多個空格

技術標籤:C/C++程式設計序筆記leetcode

劍指 Offer 58 - I. 翻轉單詞順序

難度簡單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%的使用者