题解 | #单词倒排#简单思路分享
单词倒排
http://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*单词倒排*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
List<String> res = new ArrayList<>();
// 尾巴上拼接一个“*”,为的是最后一定会走非字母的判断,把最后的单词输出
s = s + "*";
char[] chars = s.toCharArray();
StringBuilder builder = new StringBuilder();
for (char c : chars) {
// 是字母
if (Character.isLetter(c)) {
builder.append(c);
// 非字母
} else {
// 判断builder是否为空,不为空说明之前拼接过字符
if (builder.length() != 0) {
String str = builder.toString();
res.add(str);
builder.delete(0, builder.length());
}
}
}
// 倒序输出
for (int i = res.size() - 1; i >= 0 ; i--) {
System.out.print(res.get(i) + " ");
}
}
}
