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));  
 }    
}

  

原文地址:https://www.cnblogs.com/zlz-ling/p/4035475.html