zoukankan      html  css  js  c++  java
  • PAT——1052. 卖个萌

    萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:

    [左手]([左眼][口][右眼])[右手]
    

    现给出可选用的符号集合,请你按用户的要求输出表情。

    输入格式:

    输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号[]内。题目保证每个集合都至少有一个符号,并不超过10个符号;每个符号包含1到4个非空字符。

    之后一行给出一个正整数K,为用户请求的个数。随后K行,每行给出一个用户的符号选择,顺序为左手、左眼、口、右眼、右手——这里只给出符号在相应集合中的序号(从1开始),数字间以空格分隔。

    输出格式:

    对每个用户请求,在一行中输出生成的表情。若用户选择的序号不存在,则输出“Are you kidding me? @/@”。

    输入样例:

    [╮][╭][o][~][/~]  [<][>]
     [╯][╰][^][-][=][>][<][@][⊙]
    [Д][▽][_][ε][^]  ...
    4
    1 1 2 2 2
    6 8 1 5 5
    3 3 4 3 3
    2 10 3 9 3
    

    输出样例:

    ╮(╯▽╰)╭
    <(@Д=)/~
    o(^ε^)o
    Are you kidding me? @/@
    
     1 package com.hone.basical;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 import java.util.Scanner;
     6 /**
     7  * 利用题目中的条件:每个符号括在一对方括号[]内,刚开始做的时候有个误区,一直想通过正则表达式将符号给解析出来。
     8  * 原题目:https://www.patest.cn/contests/pat-b-practise/1052
     9  * @author Xia
    10  * 字符串处理
    11  */
    12 
    13 public class basicalLevel1052showCute2 {
    14 
    15     public static void main(String[] args) {
    16         Scanner in = new Scanner(System.in);
    17         List<String> hand = parse(in.nextLine());
    18         List<String> eye = parse(in.nextLine());
    19         List<String> mouth = parse(in.nextLine());
    20 
    21         int k = in.nextInt();
    22         for (int i = 0; i < k; i++) {
    23             int[] num = new int[5];
    24             num[0] = in.nextInt();
    25             num[1] = in.nextInt();
    26             num[2] = in.nextInt();
    27             num[3] = in.nextInt();
    28             num[4] = in.nextInt();
    29             
    30             //注意题目中给出来的标记是从1开始
    31             if (num[0] >= hand.size() || num[0] < 1 || num[4] >= hand.size() || num[4] < 1 || num[1] >= eye.size()
    32                     || num[1] < 1 || num[3] >= eye.size() || num[3] < 1 || num[2] >= mouth.size() || num[2] < 1) {
    33                 System.out.println("Are you kidding me? @\/@");
    34                 continue;
    35             }
    36 
    37             System.out.println(hand.get(num[0]) + "(" + eye.get(num[1]) + mouth.get(num[2]) + eye.get(num[3]) + ")"
    38                     + hand.get(num[4]));
    39         }
    40         in.close();
    41     }
    42 
    43     //解析字符串
    44     public static List<String> parse(String s) {
    45         boolean isStart = false;
    46         List<String> list = new ArrayList<>();
    47         String temp = "";
    48         list.add(temp);
    49         for (int i = 0; i < s.length(); i++) {
    50             if (s.charAt(i) == '[') {            //如果读入了左中括号,则将isStart标记为true
    51                 isStart = true;
    52             } else if (s.charAt(i) == ']') {
    53                 isStart = false;
    54                 list.add(temp);
    55                 temp = "";                        //添加完了一个符号马上将temp置为空
    56             } else {
    57                 if (isStart) {
    58                     //将char类型转化为string类型
    59                     temp += s.charAt(i);
    60                 }
    61             }
    62         }
    63         return list;
    64     }
    65 
    66 }
  • 相关阅读:
    NLP(七):textCNN
    pandas(一):选取部分(行、列)写入到另一个文件
    (二) PCA的数学原理
    NLP(六):BiLSTM_Attention实现
    python(三):collection模块
    tensorflow(二十五):Tensorboard可视化
    推荐系统(二):基于pytorch的textdeepfm
    引用相关
    带缺省参数的重复声明
    运算符优先级
  • 原文地址:https://www.cnblogs.com/xiaxj/p/7998276.html
Copyright © 2011-2022 走看看