首页 > 代码库 > Reverse Words in a String

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".

c++版:

class Solution {  public:  void reverseWords(string &s){    string ss;    int i = s.length()-1;    while(i>=0){        while(i>=0&&s[i] ==‘ ‘){            i--;        }        if(i<0) break;        if(ss.length()!=0){            ss.push_back(‘ ‘);        }        string temp;        for(;i>=0&&s[i]!=‘ ‘;i--){            temp.push_back(s[i]);        }        reverse(temp.begin(),temp.end());        ss.append(temp);    }    s = ss; }};

 java版:

public class Solution {    public String reverseWords(String s) {    StringBuilder result_str = new StringBuilder();          if(s.length()==0)//s="";          {              return new String("");          }          for (int i = s.length() - 1; i >= 0;) {              while (i >= 0 && s.charAt(i) == ‘ ‘) {                  i--;              }              if (i < 0) {                  break;              }              StringBuilder str = new StringBuilder();              while (i >= 0 && s.charAt(i) != ‘ ‘) {                  str.append(s.charAt(i--));              }              str.reverse();              str = str.append(" ");              result_str.append(str);          }          if(result_str.length()==0)//s="    ";          {              return new String("");          }          return new String(result_str.deleteCharAt(result_str.length()-1));   }    }

  

Reverse Words in a String