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.
1.利用split(" ")函数进行切分
2.首先要过滤掉首尾的空格;
3.注意两个单词之间的多个空格只要保留一个
public class Solution {
public String reverseWords(String s) {
String[] tmp = s.split(" ");
String ans = null;
int len = tmp.length;
if(len == 0) return "";
else
{
int i = 0;
while(i<len)
{
if(tmp[i].equals("")) i++;
else break;
}
int begin = i;
if(begin == len) return "";
int j = len - 1;
while(j>=0)
{
if(tmp[j].equals("")) j--;
else break;
}
int end = j;
int flag = 0;
ans = tmp[end];
for(int k = end - 1;k >= begin;k--)
{
if(tmp[k].equals("")) flag = 1;
else flag = 0;
if(flag == 0)
{
ans = ans + " " +tmp[k];
}
}
}
return ans;
}
}