您的位置:首页 > 其它

LeetCode---1.Reverse Words in a String

2014-09-05 09:12 281 查看
题目链接:https://oj.leetcode.com/problems/reverse-words-in-a-string/

解题思路:以空格为分隔符提取出每一个单词后逆序输出

代码:

class Solution {

public:

void reverseWords(string &s) {

if (s.empty()) {

return;

}

str_list.clear();

string word;

int offset = 0;

while (offset < s.length()){

findWord(s, offset);

}

s = "";

for (list<string>::const_iterator it = str_list.begin(); it != str_list.end(); it++) {

s.append(*it);

s.append(" ");

}

if (!s.empty()) {

s.erase(s.end() - 1);

}

}

private:

void findWord(string s, int& offset) {

int len = 0;

int i;

for (i = offset; i < s.length(); i++) {

if (s.at(i) == ' ') {

if (len != 0) {

str_list.push_front(s.substr(offset, len));

offset = i + 1;

return;

}

else {

offset++;

continue;

}

}

len++;

}

if (len != 0) {

str_list.push_front(s.substr(offset, len));

}

offset = i + 1;

}

list<string> str_list;

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: