[LeetCode OJ] Reverse Words in a String 解题报告

一年没碰ACM了,不知不觉我也快毕业了,为了找工作复习下算法。

看见BBS上有人推荐LeetCode OJ,那我就来刷一下,顺便写写结题报告,说不定对其他网友能起到帮助呢。

第一题:Reverse Words in a String 

题目地址:https://oj.leetcode.com/problems/reverse-words-in-a-string/

题意:给一个字符串,将字符串中的单词逆序输出,中间用单词隔开。

要点:没什么要点,注意只有一个单词的情况下不要在其后面输出空格。

总结:这道题正好复习下vector,stringstream和sort函数的使用,毕竟很久没碰C++了。

#include <iostream>
#include <sstream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
class Solution {
public:
    void reverseWords(string &s) {
        string ret = "";
        vector<string> vec;
        int cnt = 0;
        stringstream SStream;
        SStream<<s;
        string tmp;
        while(SStream>>tmp){
            vec.push_back(tmp);
            ++cnt;
        }
        for(int i = cnt-1; i >= 0; --i){
            ret+=vec[i];
            if(i!=0 && cnt > 1){
                ret+=" ";
            }
        }
        s = ret;
    }
};

点赞