华为机试-单词倒排
- import java.util.Scanner;
- import java.util.Stack;
- /**
- * 题目描述 对字符串中的所有单词进行倒排。 说明: 1、每个单词是以26个大写或小写英文字母构成; 2、非构成单词的字符均视为单词间隔符;
- * 3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符; 4、每个单词最长20个字母;
- * 输入描述: 输入一行以空格来分隔的句子 输出描述: 输出句子的逆序 示例1 输入
- *
- * I am a student 输出
- *
- * student a am I
- *
- * @author LiJian
- *
- */
- public class Night712 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Stack<String> stack = new Stack<>();
- while (scanner.hasNext()) {
- String string = scanner.nextLine();
- String s = "";
- for (int i = 0; i < string.length(); i++) {
- char c = string.charAt(i);
- if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
- s += c;
- if (i == string.length() - 1) {
- stack.push(s.toString());
- }
- } else {
- if (s != "") {
- stack.push(s.toString());
- s = "";
- }
- }
- }
- if (!stack.isEmpty()) {
- System.out.print(stack.pop());
- }
- while (!stack.isEmpty()) {
- System.out.print(" " + stack.pop());
- }
- System.out.println("");
- }
- }
- }
posted on 2017-07-13 09:51 WenjieWangFlyToWorld 阅读(99) 评论(0) 编辑 收藏 举报