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

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

click to show clarification.

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.
Have you met this question in a real interview?
 
Solution:
 1 public class Solution { 2     public String reverseWords(String s) { 3         s = s.trim(); 4  5         StringBuffer buff = new StringBuffer(); 6         int start = s.length()-1; 7         while (start>=0){ 8             //Search the next work. 9             int end = start;10             while (end>=0 && s.charAt(end)!=‘ ‘) end--;11             String word = s.substring(end+1,start+1);12             buff.append(word);13             if (end>0) buff.append(" ");14 15             //skip all the following spaces.16             while (end>=0 && s.charAt(end)==‘ ‘) end--;17             start = end;18         }19 20         return buff.toString();21     }22 }

 

LeetCode-Reverse Words in a String