首页 > 代码库 > Reverse Words in a String
Reverse Words in a String
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
Clarification:
- What constitutes a word?
A sequence of non-space characters constitutes a word. - Could the input string contain leading or trailing spaces?
Yes. However, your reversed string should not contain leading or trailing spaces. - How about multiple spaces between two words?
Reduce them to a single space in the reversed string.
#include "stdafx.h"#include <string>#include <iostream>using namespace std;class Solution{public: void reverseWords(string &s) { string revese, tmp; int k = 0; while (s[k] == ‘ ‘) //ignore the leading spaces { k++; } for (int i = k; i < s.size();) { if (s[i] != ‘ ‘) { tmp += s[i++]; } else { while (s[i] == ‘ ‘) // reduce the spaces to a single space i++; if (i == s.size()) break; revese = " " + tmp + revese; tmp = ""; } } s = tmp + revese; };};int _tmain(int argc, _TCHAR* argv[]){ Solution *sln = new Solution(); string s = " hello dd "; sln->reverseWords(s); cout << s << endl; return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。