题目描述
你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息 message
转换为正常语序。
注意:输入字符串 message
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
题目来源:力扣
题解
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class Solution { public: string reverseMessage(string message) { vector<string> res; string temp; bool flag = false; for (auto i : message) { if (i != ' ') { flag = true; temp.push_back(i); } else { if (flag) { res.push_back(temp); temp.clear(); } flag = false; } } if (flag) { res.push_back(temp); } reverse(res.begin(), res.end()); stringstream ans; for (int i = 0; i < res.size(); i++) { ans << res[i]; if (i + 1 != res.size()) ans << " "; } return ans.str(); } };
|
先从左往加扫描一遍得出所有的单词,然后使用 reverse
数组反转一下就可以了