原题地址(中等)

这题主要考察的是对字符串的操作。

方法1


直接用Python的语言特性,一行代码搞定。。。。。**

  1. class Solution:
  2. def reverseWords(self, s: str) -> str:
  3. return " ".join(reversed(s.split()))

方法2

**
考验字符串操作,把字符串中的单词一个个的拿出来存到vector中,然后反向遍历vector就可以了。

  1. class Solution {
  2. public:
  3. string reverseWords(string s) {
  4. vector<string> v;
  5. int i = 0, begin, end;
  6. while(i < s.size()){
  7. while(s[i] == ' ')
  8. i++;
  9. begin = i;
  10. while(i < s.size() && s[i] != ' ')
  11. i++;
  12. end = i - 1;
  13. if(end >= begin)
  14. v.push_back(s.substr(begin, end-begin+1));
  15. }
  16. string ans = "";
  17. for(int k=v.size()-1; k >= 0; k--){
  18. if(k != 0) ans = ans + v[k] + " ";
  19. else ans += v[k];
  20. }
  21. return ans;
  22. }
  23. };

时空复杂度

都是 O(N)