首页 > 代码库 > 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();
	    }