题解 | #单词倒排#简单思路分享
单词倒排
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) + " "); } } }