问题:
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.
思路一:关于这类问题,要注意空格问题,是否要考虑字符串首尾空格符?是否只考虑单词间得一个空格还是多个空格?是否考虑其他字符,例如制表符等。
public class Solution {
public String reverseWords(String s) {
String res = "";
String[] words = s.trim().split("\\s+");//多个空格
for (int i = words.length - 1; i > 0; --i) {
res += words[i] + " ";
}
return res + words[0];
}
}
// \\d表示 0-9 的数字,
// \\s表示 空格,回车,换行等空白符,
// \\w表示单词字符(数字字母下划线)
// +号表示一个或多个的意思,所以.
// //