标签:style blog http color os io strong for
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
方法一:切割字符串,依次将word放入数组中,然后在逆序输出,时间复杂度为O(n),空间复杂度为O(n),代码如下:
1 class Solution { 2 public: 3 void reverseWords(string &s) { 4 int start = s.find_first_not_of(‘ ‘); //找到第一个非空格字母 5 vector<string> vstr; 6 while( start != string::npos ) { //若不是字符串结尾处 7 int pos = s.find_first_of(‘ ‘, start); //从start开始找,找到第一个空格 8 vstr.push_back( s.substr(start, pos-start) ); //切割字符串,放入向量中 9 start = s.find_first_not_of(‘ ‘, pos); //pos出开始找第一个非空格 10 } 11 s.clear(); 12 if( vstr.empty() ) return ; 13 s.append(vstr[vstr.size()-1]); 14 for(int i=vstr.size()-2; i>=0; --i) { //从后往前依次将字母放入string中 15 s.push_back(‘ ‘); 16 s.append(vstr[i]); 17 } 18 } 19 };
Reverse Words in a String,布布扣,bubuko.com
标签:style blog http color os io strong for
原文地址:http://www.cnblogs.com/bugfly/p/3922828.html