题目
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.
标签:string
相似题目: (M) Reverse Words in a String II
题意
题意较为简单,就是将一个包含单词的字符串,以单词为单位,进行反转。但是需要注意的是单词与单词之间可能不仅仅是一个空格进行分隔,而且返回的结果首尾都不可以使空格。
解题思路
首先将字符串利用split分隔,分隔的正则表达式应为:\s。这样就是以空格、回车、换行符等空白符分隔。
分隔后的数组中,应含有单词和空格。对数组从后向前遍历,若当前数组元素trim()后,不为空,则一定是一个单词,将单词添加到结果中并加上空格。遍历结束后对结果字符创trim()即可。
代码
public class Solution {
public String reverseWords(String s) {
String[] s1 = s.split("\\s");
StringBuilder sb = new StringBuilder("");
for (int i = s1.length-1; i >= 0; i--) {
if (!s1[i].trim().equals("")) {
sb.append(s1[i]);
sb.append(' ');
}
}
return sb.toString().trim();
}
}