1 topics
Given an input string, reverse the string word by word.
For example,
Given s = " the sky is blue
",
Return " blue is sky the
".
Update (2015-02-12):
For C programmers:try to solve it in-place in O(1) space.
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 and words?
Reduce them to a single space in the reversed string.
Hide TagsString2 ideas According to the idea of the topic reminding, 1 what is a word: a string of characters without spaces 2 Consider the preceding and trailing spaces 3 consider a number of spaces between two words first differentiate the word Java has a function spilt, solve the problem 1 kill the front and back of the word, Java has a function trim, Solve problem 2 Get the word array with "", you can iterate again, if "", then do not join, solve the problem 3 finally a new string from the head, the output can be. 3 Code
Publicstring Reversewords (string s) {s=S.trim (); string[] Words= S.split (""); ArrayList<String> arrayList =NewArraylist<string>(); for(String string:words) {if(!String.isempty ()) {Arraylist.add (string); } } if(Arraylist.isempty ()) {return""; } intLen =arraylist.size (); StringBuffer SB=NewStringBuffer (); for(inti = 0; i < len-1; i++{//Less one, avoid a space behind the last word sb.append (arraylist.get (Len-I-1)); Sb.append (" "); } sb.append (Arraylist.get (0)); returnsb.tostring (); }
[Leetcode 151] Reverse Words in a String