WenJieWangFlyToWorld

导航

华为机试-单词倒排

 

  1. import java.util.Scanner;  
  2. import java.util.Stack;  
  3.   
  4. /** 
  5.  * 题目描述 对字符串中的所有单词进行倒排。 说明: 1、每个单词是以26个大写或小写英文字母构成; 2、非构成单词的字符均视为单词间隔符; 
  6.  * 3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符; 4、每个单词最长20个字母; 
  7.  * 输入描述: 输入一行以空格来分隔的句子 输出描述: 输出句子的逆序 示例1 输入 
  8.  *  
  9.  * I am a student 输出 
  10.  *  
  11.  * student a am I 
  12.  *  
  13.  * @author LiJian 
  14.  * 
  15.  */  
  16. public class Night712 {  
  17.     public static void main(String[] args) {  
  18.         Scanner scanner = new Scanner(System.in);  
  19.         Stack<String> stack = new Stack<>();  
  20.   
  21.         while (scanner.hasNext()) {  
  22.             String string = scanner.nextLine();  
  23.             String s = "";  
  24.   
  25.             for (int i = 0; i < string.length(); i++) {  
  26.   
  27.                 char c = string.charAt(i);  
  28.                 if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {  
  29.                     s += c;  
  30.                     if (i == string.length() - 1) {  
  31.                         stack.push(s.toString());  
  32.                     }  
  33.                 } else {  
  34.                     if (s != "") {  
  35.                         stack.push(s.toString());  
  36.                         s = "";  
  37.   
  38.                     }  
  39.                 }  
  40.             }  
  41.   
  42.             if (!stack.isEmpty()) {  
  43.                 System.out.print(stack.pop());  
  44.             }  
  45.             while (!stack.isEmpty()) {  
  46.                 System.out.print(" " + stack.pop());  
  47.             }  
  48.             System.out.println("");  
  49.         }  
  50.     }  
  51. }  

posted on 2017-07-13 09:51  WenjieWangFlyToWorld  阅读(99)  评论(0编辑  收藏  举报