首页 > 代码库 > [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".

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.
 1 public class Solution { 2     private void reverseWord(  char[] arr, int start, int end ){ 3         char temp; 4         while( start<end ){ 5             temp = arr[start]; 6             arr[start] = arr[end]; 7             arr[end] = temp; 8             start++; 9             end--;10         }11     }12     13     public String reverseWords(String s) {14         String str = s.trim().replaceAll("\\s+", " ");15         int len = str.length();16         char[] arr_str = str.toCharArray();17         int start = 0;18         int end = 0;19         while( start<len ){20             end = start;21             while( end<len && arr_str[end]!=‘ ‘ ){22                 end++;23             }24             reverseWord( arr_str, start, end-1 );25             start = end+1;26         }27         reverseWord( arr_str, 0, len-1 );28         return new String( arr_str );   29     }30 }

 

[LeetCode]-Reverse Words in a String