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

中文:给定一个输入字符串,依照单词逆转之。

比如:

给定 s="the sky is blue",

返回 "blue is sky the"

说明:什么组成一个单词?

一个非空的字符序列组成一个单词。

输入的字符串能够包括头或尾的空格吗?

能够。可是你的倒转的字符串不应该包括头尾空格。

两个单词间有多个空格又如何呢?

在倒转的字符串中把它们降低为一个空格。

此题比較简单,主要考虑使用空格进行切割和空格的去除。

Java:

	  public String reverseWords(String s) {
		  if(s.trim() == "")
			  return null;
	        String str[] = s.trim().split("\\s+");
	        StringBuilder sb = new StringBuilder();
	        int len = str.length;
	        for(int i=len-1;i>=0;i--){
	        	if(str[i] == " ")
	        		continue;
	        	sb.append(str[i]+" ");
	        }
	        return sb.toString().trim();
	    }