一年没碰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;
}
};