幼儿园篮球游戏
题目描述:
幼儿园里有一个放倒的圆桶,它是一个 线性结构,允许在桶的右边将篮球放入,可以在桶的左边和右边将篮球取出。每个篮球有单独的编号,老师可以连续放入一个或多个篮球,小朋友可以在桶左边或右边将篮球取出,当桶只有一个篮球的情况下,必须从左边取出。
如老师按顺序放入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”}
}
相关文章:
幼儿园篮球游戏
题目描述: 幼儿园里有一个放倒的圆桶,它是一个 线性结构,允许在桶的右边将篮球放入,可以在桶的左边和右边将篮球取出。每个篮球有单独的编号,老师可以连续放入一个或多个篮球,小朋友可以在桶左边或右边将篮…...
Android编译环境构建(二)(可用于物理机、虚拟机、容器化Jenkins环境)
文章目录 需求环境要求文件下载Gradle Version:7.5cmdline-tools至此普通物理环境的Android编译环境已部署完毕 部署maven(可选)Jenkins配置Android构建环境 说明: 物理环境:物理机、虚拟机等 容器化环境:docker等 需求 Gradle Version:7.5 …...
Web服务器(实验)
目录 nginx实验1(快速建站)实验2(更换默认网页目录)实验3(内网穿透花生壳)实验4(综合nginx)实验5(基于不同IP的虚拟主机网站)实验6(基于不同端口号…...
【湖南-常德】《市级信息化建设项目初步设计方案编制规范和支出预算编制标准(试行)》-省市费用标准解读系列05
《市级信息化建设项目初步设计方案编制规范和支出预算编制标准(试行)》(常行审 〔2023〕7号)标准是湖南省常德市行政审批服务局、常德市财政局2023年12月29日发布的费用标准(了解更多可直接关注我们咨询)。…...
微信小程序 https://pcapi-xiaotuxian-front-devtest.itheima.net 不在以下 request 合法域名
微信小程序在调用接口的时候出现以上报错,接口没有问题,是因为小程序自动校验了合法域名 打开本地设置: 勾选不校验合法域名,即可 效果如下:...
vue什么时候渲染旧的VDOM,什么时候渲染新的VDOM
在 Vue 中,决定渲染旧的 VDOM 还是新的 VDOM 的关键在于组件的数据变化和 Vue 的响应式系统。一些常见的情况可以帮助理解这个过程: 1. 渲染新 VDOM 的情况 数据变化:当组件的响应式数据(如 data、props 或计算属性)发…...
【Qwen2技术报告分析】从模型架构 数据构建和模型评估出发
目录 前言 一、Tokenizer 二、模型结构 dense模型 MoE模型 模型参数设置 三、Pre-Training Pre-Training DATA LONG-CONTEXT TRAINING 四、Post-Training Post-Training DATA 人工数据注释(collaborative data annotation) 自动数据合成&a…...
Naive UI 选择器 Select 的:render-option怎么使用(Vue3 + TS)(鼠标悬停该条数据的时候展示全部内容)
项目场景: 在渲染select选择器后,当文字过长的时候,多出来的部分会显示成省略号,这使我们不能很清晰的看到该条数据的完整信息,就需要加一个鼠标悬停展示完整内容。 解决方案: vue代码: <n…...
使用Mac如何才能提高OCR与翻译的效率
OCR与截图大家都不陌生,或许有的朋友对于这两项功能用到的不多,但是如果经常会用到的话,那你就该看看了 iOCR,快捷键唤出翻译窗口,不论是截图翻译、划词翻译、输入翻译、剪切板翻译,统统快捷键完成&#x…...
QML----复制指定下标的ListModel数据
我现在有一个写好的listmodel,我需要从里边抽取35个数据作为展示 头文件 #ifndef GETONEPAGESIZEMEMBERLISTMODEL_H #define GETONEPAGESIZEMEMBERLISTMODEL_H#include <QObject> #include <QAbstractListModel> #include <QDebug> #include "mylistm…...
CSS Text(文本)
CSS Text(文本) CSS Text 是一种用于控制网页中文本显示样式的技术。通过使用 CSS Text 属性,开发者可以轻松地调整文本的字体、大小、颜色、对齐方式等,从而实现更加美观和个性化的网页设计。本文将详细介绍 CSS Text 的各种属性及其应用方法。 一、字体属性 1. font-fam…...
聊一聊Spring中的@Transactional注解【下】【注解失效场景】
前言 尽管 Transactional 注解在 Spring 中提供了方便的事务管理功能,我们在使用过程中却常常面临其失效的问题。事务失效可能导致意想不到的数据状态和错误,影响应用的稳定性和可靠性。本文将探讨一些常见的 Transactional 失效场景,包括异常…...
对称加密与非堆成加密
http通信有一些什么问题 窃听 - 对称加密传递密钥 - 非对称加密安全速度 - 非对称加密 对称加密中间人攻击 - 证书证书伪造 - 消息摘要摘要伪造 - 数字签名 可能被窃听 http本身不具备加密功能,http报文使用明文方式发送 还可能存在验证问题 无法确认发送到的…...
江协科技STM32学习- P28 USART串口数据包
🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝…...
Linux脚本循环(for、while、until)
文章目录 for基础风格for列表风格for与seq组合for与大括号for循环处理脚本参数组合命令while基础while数字累加utilcontinue for基础风格 这种风格最像高级程序中的for循环 #!/bin/bashfor(( i0; i<10; i )) doecho "第$i次for循环" donefor列表风格 #!/bin/ba…...
文件系统上云的挑战
优质博文:IT-BLOG-CN 一、挑战/注意事项 【1】因文件系统HDFS没有关联信息OrderId等,不能对存量数据进行有策略的同步,因此目前是将所有的文件同步至云服务器SIN; 【2】海外数据和国内数据上传到各自的文件服务器后,…...
【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十一章 制作Ubuntu文件系统
iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…...
中间件漏洞总结
参考:Tomcat漏洞详解-CSDN博客 tomcat 历史漏洞 阿里云漏洞库 (aliyun.com) 弱口令和war远程部署漏洞 弱口令 Tomcat8.* 登录页面:/manager/html 弱口令:tomcat/tomcat 后台Getshell 登录到后台后可以通过部署 war 包进行 getshell wa…...
PySpark Yarn集群模式
目录 简介 一、PySpark简介 二、YARN模式概述 三、配置环境 1. 安装与配置Spark 2. 配置Hadoop和YARN 3. 启动yarn 四、编写PySpark脚本 五、提交PySpark作业到YARN 参数解释: 六、常见问题及解决 七、总结 简介 随着大数据的普及,Spark作为…...
Matlab基于经纬度点并行提取指定日期的tiff栅格位置的值
文章目录 前言一、基本说明二、代码 前言 该 MATLAB 代码用于从 GeoTIFF 文件中提取基于特定地理位置(经纬度)和日期的某个点的相关数据。代码首先读取一个包含事件数据(日期、经纬度)的 Excel 文件,然后根据日期和位…...
数字IC时序约束实战:深入解析clock_uncertainty的设置策略与后端影响
1. 时钟不确定度的本质与组成 刚入行数字IC设计时,我最头疼的就是时序约束里那些看似相似却又微妙差别的概念。记得第一次看到clock_uncertainty这个参数,我盯着综合报告里的红色违例发了半小时呆。后来才明白,这个参数就像给时钟信号加了&qu…...
电源管理入门-12 clock驱动
电源管理的两个大方面就是电压和时钟。 Clock 时钟就是 SoC 中的脉搏,由它来控制各个部件按各自的节奏跳动。比如,CPU主频设置,串口的波特率设置,I2S的采样率设置,I2C的速率设置等等。这些不同的clock设置,…...
ECharts折线图入门学习:从基础到实战的完整指南
引言 折线图是数据可视化中最常用的图表类型之一,特别适合展示数据随时间变化的趋势。ECharts作为一款功能强大的JavaScript可视化库,提供了丰富的配置选项和交互功能,能够轻松创建出专业、美观的折线图。本文将带领大家从零开始学习ECharts折…...
从“工具辅助”到“智慧赋能”:青软青之深度集成LIMS、ELN、AUTO等核心系统,打造全场景智慧实验室新范式
在科研创新迭代加速、检验检测产业升级纵深推进的今天,实验室作为创新源头,其运行效率与管理水平直接决定研发效能与质量。传统依赖人工记录、纸质流转和信息孤岛的模式,已难以适应复杂实验需求与严苛合规监管。智慧实验室,正成为…...
【原创改进代码】考虑电动汽车移动储能特性的多区域电网功率波动平抑优化调控附python代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子…...
新手入门:在快马平台动手实现你的第一个ui-ux-pro-max设计页面
作为一个刚接触前端设计的新手,最近在InsCode(快马)平台尝试做了一个UI-UX-Pro-Max级别的登录注册页面,整个过程意外地顺利。这里记录下我的实践过程,希望能帮到同样想入门的朋友。 从零搭建页面框架 先用HTML搭建基础结构,包含表…...
开源工具TranslucentTB启动错误0x800401E3完整解决方案
开源工具TranslucentTB启动错误0x800401E3完整解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB TranslucentTB是一款广受欢迎的Wi…...
Python高效开发技巧汇总
这是一篇关于Python开发的技术文章示例内容,可以替换为真实文章内容。...
(全网最全)分享8款AI工具,毕业论文AIGC率速降至5%!
【CSDN AI底层算法专栏 / 核心摘要】 2026年,学术圈的反AI审查已经演变成了一场“算法级别的军备竞赛”。随着知网、万方全面接入大模型语义探针,靠改同义词、甚至靠传统Prompt洗稿的套路已全线崩溃。为了帮大家避坑,本期专栏我从代码和算法逻…...
GG3M贝叶斯决策数学体系:六大核心领域落地应用与差异化壁垒
GG3M贝叶斯决策数学体系:六大核心领域落地应用与差异化壁垒摘要 GG3M的贝叶斯更新与决策数学体系,基于原创“事实层—模型层—元模型层”三层级架构,以系统长期反熵增演化为核心决策标尺,从“智能参数优化”跨越至“智慧框架迭代”…...
