翻轉字串裡的單詞—leetcode151
阿新 • • 發佈:2021-01-11
技術標籤:劍指offer+leetcode字串leetcode
給定一個字串,逐個翻轉字串中的每個單詞。
說明:
無空格字元構成一個 單詞 。
輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含一個。
示例 1:
輸入:"the sky is blue"
輸出:"blue is sky the"
示例 2:
輸入:" hello world! "
輸出:"world! hello"
解釋:輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
輸入:"a good example"
輸出:"example good a"
解釋:如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含一個。
示例 4:
輸入:s = " Bob Loves Alice "
輸出:"Alice Loves Bob"
示例 5:
輸入:s = "Alice does not even like bob"
輸出:"bob like even not does Alice"
提示:
1 <= s.length <= 104
s 中 至少存在一個 單詞
思路:遍歷一遍字串,將詞存到stack裡面,再吐出來儲存
class Solution { public: string reverseWords(string s) { string result = "", temp = ""; stack<string> res; int n = s.length(); for(int i=0;i<n;++i){ if(s[i]==' '){ if(temp!=""){ res.push(temp); temp = ""; } }else{ temp += s[i]; } } if(res.empty()) return temp; if(temp!="") result += temp + ' '; int num = res.size(); for(int i=0;i<num-1;++i){ result += res.top()+' '; res.pop(); } result += res.top(); return result; } };