LeetCode新题,可是比較简单,直接用栈就可以
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.
public class Solution { public String reverseWords(String s) { if(s.length() == 0) { return s; } Stack<String> stack = new Stack<String>(); String[] ss = s.split("\s+"); for(String word : ss) { stack.push(word); } StringBuilder sb = new StringBuilder(); while(!stack.isEmpty()) { sb.append(stack.pop()).append(" "); } return sb.toString().trim(); } }