幼儿园篮球游戏

题目描述:

幼儿园里有一个放倒的圆桶,它是一个 线性结构,允许在桶的右边将篮球放入,可以在桶的左边和右边将篮球取出。每个篮球有单独的编号,老师可以连续放入一个或多个篮球,小朋友可以在桶左边或右边将篮球取出,当桶只有一个篮球的情况下,必须从左边取出。

如老师按顺序放入1、2、3、4、5共有5 个编号的篮球,那么小朋友可以依次取出编号为1、2、3、4、5或者 3、1、2.4、5 编号的篮球,无法取出 5、1、3、2、4 编号的篮球

其中 3、1、2、4、5 的取出场景为:

->连续放入1、2、3号

->从右边取出3号

->从左边取出1号

->从左边取出2号

->放入4号

->从左边取出4号

->放入5号

->从左边取出5号

简答起见,我们以 L 表示左,R表示右,此时取出篮球的依次取出序列为“RLLLL”。

输入描述:

每次输入包含一个 测试用例

1.第一行的数字作为老师依次放入的篮球编号

2.第二行的数字作为要检查是否能够按照放入的顺序取出给定的篮球的编号,其中篮球的编号用逗号进行分隔.

其中篮球编号用逗号进行分隔。

输出描述:

对干每个篮球的取出席列,如果确实可以获取,请打印出其按照左右方向的操作取出顺序,如果无法获取则打印“NO”

备注

1<篮球编号,篮球个数≤200

篮球上的数字不重复

输出的结果中 LR 必须为大写

示例1:

输入:

4,5,6,7,0,1,2

6,4,0,1,2,5,7

输出:

RLRRRLL

说明:

篮球的取出顺序依次为"右、左、右、右、右、左、左"

示例2:

输入:

4,5,6,7,0,1,2

6,0,5,1,2,4,7

输出:

NO

示例3:

输入:

1,2,3,4

1,2,3,5

输出:

NO

题解

使用双端队列模拟,可以完成,输出结果

源码 Java

import java.util.*; // 导入Java的工具包,包含Scanner等类public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in); String line = in.nextLine();  // 读取第一行输入,即老师放入的篮球编号String[] numStrings = line.split(","); // 分割输入的字符串,获取篮球编号数组Deque<Integer> dq = new ArrayDeque<>(); // 使用双端队列来模拟篮球的放入和取出Queue<Integer> a = new LinkedList<>(); // 队列a用于存放篮球的初始放入顺序for (String x: numStrings)a.add(Integer.parseInt(x)); // 将字符串转为整数并放入队列aline = in.nextLine(); // 读取第二行,即要检查的取出顺序numStrings = line.split(",");int[] b = new int[numStrings.length]; // 数组b用于存放需要检查的取出顺序for (int i = 0; i < numStrings.length; i++)b[i] = Integer.parseInt(numStrings[i]); // 转换并存储到数组bStringBuffer res = new StringBuffer(); // 用于存储取出篮球的操作序列(左或右)boolean f = true; // 标志变量,表示是否可以按要求顺序取出篮球for (int x : b) { // 遍历要检查的取出顺序while (f) {if (dq.size() > 0 && dq.peekFirst() == x) { // 检查队首元素是否匹配dq.pollFirst(); // 如果匹配,从队首取出res.append("L"); // 记录操作为从左边取出break;} else if (dq.size() > 0 && dq.peekLast() == x) { // 检查队尾元素是否匹配dq.pollLast(); // 如果匹配,从队尾取出res.append("R"); // 记录操作为从右边取出break;} else if (a.size() > 0) {dq.offerLast(a.poll()); // 如果当前队列中没有匹配的,继续从a中放入篮球到队尾} else {f = false; // 如果无法继续放入,且没有找到匹配的篮球,设置f为false}}if (!f) // 如果已确定无法按要求取出,中断循环break;}System.out.println((f ? res.toString() : "NO")); // 根据f的值输出结果或“NO”}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/2697.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

SIwave:释放 Resonant Mode Solver 的强大功能

SIwave 是一种电源完整性和信号完整性工具。本文的重点是 Resonant 模式求解器。 进行谐振计算的主要原因是确定 Powerplane 中 Cap 去耦的最佳位置。Powerplane 的大小由最大预期电流和允许的最大电压降决定。然而&#xff0c;即使是最好的设计也没有足够的电容来将宽带频谱的…

【VS+QT】联合开发踩坑记录

0. 写在前面 因为目前在做自动化产线集成软件开发相关的工作&#xff0c;需要用到QT&#xff0c;所以选择了VS联合开发&#xff0c;方便调试。学习QT的过程中也踩了很多坑&#xff0c;在此记录一下&#xff0c;提供给各位参考。 1. 环境配置 Win11Visual Studio 2019Qt 5.12…

【LeetCode】每日一题 2024_11_1 超级饮料的最大强化能量(DP)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;超级饮料的最大强化能量 代码与解题思路 先读题&#xff1a; 题目给了两个数组&#xff0c;长度为 n&#xff0c;题目要求在 n 个小时内选择饮料&#xff0c;一个小时可以选一瓶&#x…

IBM服务器修改IMM的IP方法

服务器设备&#xff1a;IBM x3550 M4 Server IMM默认IP地址&#xff1a;192.168.70.125 用户名&#xff1a;USERID 密码&#xff1a;PASSW0RD&#xff08;注意是零0&#xff09; 1.服务器开机按F1进入BIOS界面 2.进入System Settings 3.进入Integrated Management Module 4.…

【MATLAB代码】一维UKF的IMM,模型有CV和CA

目录 ​编辑 代码介绍 主要功能 UKF 更新函数 总结 代码介绍 这段 MATLAB 代码实现了一维无迹卡尔曼滤波&#xff08;UKF&#xff09;与交互多模型&#xff08;IMM&#xff09;结合的算法&#xff0c;旨在对非线性动态系统进行状态估计。代码中的模型包括恒速&#xff08…

Java对象、类、接口——针对实习面试

目录 Java对象、类、接口你知道类和对象的区别吗&#xff1f;抽象类和接口有什么共同点&#xff1f;抽象类和接口有什么区别&#xff1f;说一下面向对象的三大特征及其特点&#xff1f;你知道Java中方法重载和重写的区别吗&#xff1f;静态成员和非静态成员有什么区别&#xff…

Solana链上的Pump狙击机器人与跟单机器人的工作原理及盈利模式

随着加密货币市场的快速发展&#xff0c;越来越多的投资者和开发者开始关注Solana链上的自动化交易工具。尤其是Pump狙击机器人和跟单机器人&#xff0c;这两种工具为用户提供了在市场波动中获取利润的机会。本文将深入分析这两种机器人的工作原理及其盈利模式。 一、Pump狙击机…

Vue全栈开发旅游网项目(6)-接口开发

1.景点详情接口开发 1.设计响应数据结构 文件地址&#xff1a;sight/serializers.py 创建类&#xff1a; class SightDetailSerializers(BaseSerializer):#景点详情def to_dict(self):obj self.objreturn {id: obj.id,name: obj.name,desc: obj.desc,img: obj.banner_img.…

Flutter学习笔记(二)------ 第一个flutter项目

一、Dart语法 dart语法较为简单&#xff0c;学过python和c后发现大同小异。不过多介绍 1.函数可变参数 可以类比*args, **kwargs&#xff0c;与之不同的是dart中&#xff0c;*args **kwargs不能同时存在 void a(int a, [float x, double b0.0]) {//do something... }a(10, …

MySQL-如果你在添加外键时忘加约束名,如何找到系统默认的约束名

问题 在你添加约束的时候&#xff0c;一般都会为其取名以方便后期的修改&#xff0c;但是如果你忘记了呢&#xff0c;如何找到系统默认的约束名 解决方法 -- 查找约束名 SELECTCONSTRAINT_NAME FROMINFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERETABLE_NAME emp ANDREFERENCED_T…

2-Ubuntu/Windows系统启动盘制作

学习目标&#xff1a; 掌握使用Win32DiskImager、Rufus等工具制作系统启动盘的基本步骤。独立将ISO镜像文件写入USB闪存驱动器&#xff0c;确保在需要时顺利安装或修复系统。通过学习如何选择正确的源文件和目标驱动器&#xff0c;理解启动盘的使用场景和注意事项&#xff0c;…

上云管理之Git/GitHub/GitLab 详解(一)

上云管理之Git/GitHub/GitLab 详解(一&#xff09; 引言1. GIT软件安装2.初始化配置与提交代码2.1. 初始化配置2.2 本地仓库代码提交2.2.1 初始化仓库并提交代码2.2.2 再次提交已修改的代码2.2.3 文件夹层次结构代码提交 2.3 GIT 的文件状态 3.GIT 分支3.1. 分支的切换与删除3.…

【UltraVNC】使用反向连接方式-部署私有远程工具(简版)

一、简要介绍 反向连接&#xff1a;客户电脑发起连接到维修工程师电脑。 场景&#xff1a;计算机A 无公网IP &#xff0c;计算机B无公网IP&#xff0c;AB直接进行远程的行为。 核心&#xff1a;借助中继方式 二、安装环境和安装包 中继器服务&#xff1a;linux系统安装包&…

技术分享 | 大语言模型赋能软件测试:开启智能软件安全新时代

在当今数字化时代&#xff0c;软件安全问题的严峻性日益凸显。随着网络攻击手段变得愈发复杂多样&#xff0c;切实保障软件系统的安全性已然成为开发者以及企业所面临的核心挑战。依据国际网络安全机构的相关报告&#xff0c;网络攻击事件的发生频率与复杂程度呈现出逐年递增的…

【图书管理与推荐系统】Python+Django网页界面+协同过滤推荐算法+网站系统

一、介绍 图书管理与推荐系统。使用Python作为主要开发语言。前端采用HTML、CSS、BootStrap等技术搭建界面结构&#xff0c;后端采用Django作为逻辑处理&#xff0c;通过Ajax等技术实现数据交互通信。在图书推荐方面使用经典的协同过滤算法作为推荐算法模块。主要功能有&#…

达梦asm创建磁盘组

达梦ASM磁盘组创建过程 安装dsc建库前需要配置asm磁盘组&#xff0c;通常编辑一个文件 vim /dm/dmdbms/config/create_asm_group.txt #asm script file create diskgroup ARCH asmdisk /dev/asmdisk/dsc_asm1 create diskgroup DATA asmdisk /dev/asmdisk/dsc_asm2 alter di…

Selenium常见问题解析

1、元素定位失败&#xff1a; 在使用Selenium自动化测试时&#xff0c;最常见的问题之一是无法正确地定位元素&#xff0c;这可能导致后续操作失败。解决方法包括使用不同的定位方式&#xff08;如xpath、CSS selector、id等&#xff09;&#xff0c;等待页面加载完全后再进行…

C++:set和map的使用

目录 序列式容器和关联式容器 set set类的介绍 构造和迭代器 增删查 insert find和erase erase迭代器失效 lower_bound与upper_bound multiset和set的区别 map map类的介绍 pair类型介绍 构造和迭代器 增删查 map数据修改&#xff1a;重载operator[] multimap…

达梦dsc环境dcr vote磁盘大小

达梦dsc环境中磁盘管理通过asm来实现&#xff0c;必须创建dcr和vote磁盘&#xff0c;那么这两个asm磁盘大小最小是多少&#xff1f; 32M asm文件最小为4个au&#xff0c;au大小为1M&#xff0c;因此asm文件最小为4M。但是创建vote时&#xff0c;命令只支持最小32M 通常生产环…

python操作MySQL以及SQL综合案例

1.基础使用 学习目标&#xff1a;掌握python执行SQL语句操作MySQL数据库软件 打开cmd下载安装 安装成功 connection就是一个类&#xff0c;conn类对象。 因为位置不知道&#xff0c;所以使用关键字传参。 表明我们可以正常连接到MySQL 演示、执行非查询性质的SQL语句 pytho…