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? @\/@
package com.hone.basical; import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 利用题目中的条件:每个符号括在一对方括号[]内,刚开始做的时候有个误区,一直想通过正则表达式将符号给解析出来。
* 原题目:https://www.patest.cn/contests/pat-b-practise/1052
* @author Xia
* 字符串处理
*/ public class basicalLevel1052showCute2 { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<String> hand = parse(in.nextLine());
List<String> eye = parse(in.nextLine());
List<String> mouth = parse(in.nextLine()); int k = in.nextInt();
for (int i = 0; i < k; i++) {
int[] num = new int[5];
num[0] = in.nextInt();
num[1] = in.nextInt();
num[2] = in.nextInt();
num[3] = in.nextInt();
num[4] = in.nextInt(); //注意题目中给出来的标记是从1开始
if (num[0] >= hand.size() || num[0] < 1 || num[4] >= hand.size() || num[4] < 1 || num[1] >= eye.size()
|| num[1] < 1 || num[3] >= eye.size() || num[3] < 1 || num[2] >= mouth.size() || num[2] < 1) {
System.out.println("Are you kidding me? @\\/@");
continue;
} System.out.println(hand.get(num[0]) + "(" + eye.get(num[1]) + mouth.get(num[2]) + eye.get(num[3]) + ")"
+ hand.get(num[4]));
}
in.close();
} //解析字符串
public static List<String> parse(String s) {
boolean isStart = false;
List<String> list = new ArrayList<>();
String temp = "";
list.add(temp);
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '[') { //如果读入了左中括号,则将isStart标记为true
isStart = true;
} else if (s.charAt(i) == ']') {
isStart = false;
list.add(temp);
temp = ""; //添加完了一个符号马上将temp置为空
} else {
if (isStart) {
//将char类型转化为string类型
temp += s.charAt(i);
}
}
}
return list;
} }
PAT——1052. 卖个萌的更多相关文章
- PAT 1052 卖个萌 (20)(代码+思路)
1052 卖个萌 (20)(20 分) 萌萌哒表情符号通常由"手"."眼"."口"三个主要部分组成.简单起见,我们假设一个表情符号是按下列格 ...
- PAT 1052 卖个萌
https://pintia.cn/problem-sets/994805260223102976/problems/994805273883951104 萌萌哒表情符号通常由“手”.“眼”.“口”三 ...
- PAT 1052. 卖个萌 (20)
萌萌哒表情符号通常由“手”.“眼”.“口”三个主要部分组成.简单起见,我们假设一个表情符号是按下列格式输出的: [左手]([左眼][口][右眼])[右手] 现给出可选用的符号集合,请你按用户的要求输出 ...
- PAT(B) 1052 卖个萌(Java:0分 待解决,C:20分)
题目链接:1052 卖个萌 (20 point(s)) 题目描述 萌萌哒表情符号通常由"手"."眼"."口"三个主要部分组成.简单起见,我们 ...
- PAT-乙级-1052. 卖个萌 (20)
1052. 卖个萌 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 萌萌哒表情符号通常由“手”.“眼”. ...
- PAT Basic 1052 卖个萌 (20 分)
萌萌哒表情符号通常由“手”.“眼”.“口”三个主要部分组成.简单起见,我们假设一个表情符号是按下列格式输出的: [左手]([左眼][口][右眼])[右手] 现给出可选用的符号集合,请你按用户的要求输出 ...
- 1052 卖个萌 (20 分)C语言
萌萌哒表情符号通常由"手"."眼"."口"三个主要部分组成.简单起见,我们假设一个表情符号是按下列格式输出的: [左手]([左眼][口][右 ...
- P1052 卖个萌
P1052 卖个萌 转跳点:
- 【PAT】B1052 卖个萌(20 分)
实在不想写这个题,好费劲,头疼,这是粘的柳婼的代码 ,等我有空再自己用c写吧 #include <iostream> #include <vector> using names ...
随机推荐
- 插件式WebApi服务及自动生成Api帮助文档
上一篇博客中,讲到了将WebApi Host到控制台和IIS,本篇总结一下如何将WebApi的Service以插件的形式进行动态部署,并设置Hoster的首页显示Api帮助文档,当然,也包括动态部署进 ...
- Python Django ORM创建基本类以及生成数据结构
#在项目目录下的modules.py中创建一个类,来自动生成一张表UserInfo class UserInfo(models.Model): username = models.CharField( ...
- Zookeeper + Guava loading cache 实现分布式缓存
1. 概述 项目中,创建的活动内容存入redis,然后需要用到活动内容的地方,从redis去取,然后参与计算. 活动数据的一个特点是更新不频繁.数据量不大.因为项目部署一般是多机器.多实例,除了red ...
- 理解webpack4.splitChunks之maxInitialRequests
maxInitialRequests是splitChunks里面比较难以理解的点之一,它表示允许入口并行加载的最大请求数,之所以有这个配置也是为了对拆分数量进行限制,不至于拆分出太多模块导致请求数量过 ...
- gulp快速将css中的px替换成rem
1.Gulp安装配置 1.全局安装gulp 1.1 安装 命令提示符执行cnpm install gulp -g; 1.2 查看是否正确安装:命令提示符执行gulp -v,出现版本号即为正确安装. 2 ...
- .NET 跨平台服务端资料
OWIN Web API: http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web- ...
- 浅谈 unix, linux, ios, android 区别和联系
浅谈 unix, linux, ios, android 区别和联系 网上的答案并不是很好,便从网上整理的相对专业的问答,本人很菜,大佬勿喷 UNIX 和 Linux UNIX 操作系统(尤尼斯) ...
- 初识WCF1
参照: http://blog.csdn.net/songyefei/article/details/7363296 第一篇 Hello WCF WCF(Windows Communication F ...
- C#中的特殊数据类型
一.c#中的特殊数据类型 C#中特殊数据类型有class类型.结构类型.数组类型.枚举类型.集合类型.委托类型.事件.Lambda表达式.接口类型. 1.class类型 1.1类定义 class St ...
- Django objects.all() ,objects.get() ,objects.filter()之间的区别
ret=UserInfo.objects.all() all返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使用for循环可以获取数据. ret=UserIn ...