题目:
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
- 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.
题解:
一个用了java的s.split(" "),按空格分隔。
然后调用了系统函数:Collections.reverse(list);把list顺序调换了。
最后再把结果存成数组即可。
代码如下:
1 public static String reverseWords(String s) {
2 if(s==null||s.length()==0)
3 return s;
4 String [] result = s.split(" ");
5 if(result==null||result.length==0)
6 return "";
7
8 ArrayList<String> list = new ArrayList<String>();
9
10 for(int i = 0; i<result.length;i++){
11 if(!result[i].isEmpty())
12 list.add(result[i]);
13 }
14 Collections.reverse(list);
15
16 String ans = new String();
17 for(int i = 0; i<list.size()-1;i++){
18 ans += list.get(i)+" ";
19 }
20 ans +=list.get(list.size()-1);
21 return ans;
22 }
2 if(s==null||s.length()==0)
3 return s;
4 String [] result = s.split(" ");
5 if(result==null||result.length==0)
6 return "";
7
8 ArrayList<String> list = new ArrayList<String>();
9
10 for(int i = 0; i<result.length;i++){
11 if(!result[i].isEmpty())
12 list.add(result[i]);
13 }
14 Collections.reverse(list);
15
16 String ans = new String();
17 for(int i = 0; i<list.size()-1;i++){
18 ans += list.get(i)+" ";
19 }
20 ans +=list.get(list.size()-1);
21 return ans;
22 }