OD_2024_C卷_200分_2、石头剪刀布【JAVA】【逻辑分析】
题目描述
石头剪刀布游戏有 3 种出拳形状:石头、剪刀、布。分别用字母A、B、C表示。
游戏规则:
-
出拳形状之间的胜负规则如下:
A > B; B > C; C > A;
“>” 左边一个字母,表示相对优势形状。右边一个字母,表示相对劣势形状。
-
当本场次中有且仅有一种出拳形状优于其他出拳形状,则该形状的玩家是胜利者。否则认为是平局。
例如1:三个玩家出拳分别是A,B,C。由于三方优势循环(即没有任何一方优于其他出拳者),判断为平局。
例如2:三个玩家出拳分别是A,B,B。出拳A的获胜。
例如3:三个玩家出拳全部是A。判为平局。
-
当发生平局,没有赢家。有多个胜利者时,同为赢家。
输入描述
在一场游戏中,每个玩家的信息为一行。玩家数量不超过1000。每个玩家信息有2个字段,用空格隔开;
- 玩家ID:一个仅由英文字母和数字组成的字符串
- 出拳形状:以英文大写字母表示,A、B、C形状。
- ~ 拳时间:正整数,越小表示时间越早~
例如:
abc1 A xyz B
解释:玩家abc1出拳为石头(A)。玩家xyz出拳为剪刀(B)
输出描述
输出为赢家的玩家ID列表(一个或多个),每个ID一行,按字符串升序排列。如果没有赢家,输出为”NULL“字符串。
例如:
abc1
用例1
输入
abc1 A
xyz B
输出
abc1
说明
A比B有优势,abc1胜出
用例2
输入
abc1 A
xyz A
输出
NULL
说明
没有优胜的出拳形状,平局
用例3
输入
abc1 A
def A
alic A
xyz B
输出
abc1
alic
def
说明
A为优胜方,有三个赢家
代码 还在研究…
package odjava;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;public class 石头剪刀布游戏 {// 输入输出处理public static void main(String[] args) {Scanner sc = new Scanner(System.in);HashMap<Character, ArrayList<String>> map = new HashMap<>();while (sc.hasNext()) {String player = sc.next();char gesture = sc.next().charAt(0);// 如果有人不按套路出,则此局作废if (gesture < 'A' || gesture > 'C') {System.out.println("NULL");return;}// 统计各个手势的出派人map.putIfAbsent(gesture, new ArrayList<>());map.get(gesture).add(player);}switch (map.size()) {case 1:case 3:// 只有一种手势,或者三种手势都有,则平局System.out.println("NULL");break;case 2:ArrayList<String> ans;if (!map.containsKey('A')) {// 没有A手势,只有B、C手势,则B赢ans = map.get('B');} else if (!map.containsKey('B')) {// 没有B手势,只有A、C手势,则C赢ans = map.get('C');} else {// 没有C手势,只有A、B手势,则A赢ans = map.get('A');}ans.sort(String::compareTo);ans.forEach(System.out::println);break;}}
}相关文章:
OD_2024_C卷_200分_2、石头剪刀布【JAVA】【逻辑分析】
题目描述 石头剪刀布游戏有 3 种出拳形状:石头、剪刀、布。分别用字母A、B、C表示。 游戏规则: 出拳形状之间的胜负规则如下: A > B; B > C; C > A; “>” 左边一个字母,表示相对…...
矩阵求导笔记
文章目录 1. ML中为什么需要矩阵求导2. 向量函数与矩阵求导初印象3. YX 拉伸术3.1 f(x)为标量,X为列向量3.2 f(x)为列向量,X 为标量3.3 f(x)为列向量,X 为列向量 4. 常见矩阵求导公式4.1 Y A T X YA^TX YATX4.2 Y X T A X YX^TAX YXTAX 1…...
全量知识系统问题及SmartChat给出的答复 之19 关于演示模板
Q.60 可参考的演示模版 (word-def occupiedinterest 5type EBsubclass SEBtemplate (script $Demonstrateactor nilobject nildemands nilmethod (scene $Occupyactor nillocation nil))fill (((actor) (top-of *actor-stack*))((method actor) (t…...
Linux学习——线程的控制
目录 编辑 一,线程的创建 二,线程的退出 1,在子线程内return 2,使用pthread_exit(void*) 三,线程等待 四,线程获取自己的id值 五,线程取消 六,线程分离 一,线程的创建 在对…...
Rust常用特型之Drop特型
Rust常用特型之Drop特型.md在Rust标准库中,存在很多常用的工具类特型,它们能帮助我们写出更具有Rust风格的代码。 今天,我们主要学习Drop特型。 (注:本文更多的是对《Programing Rust 2nd Edition》的自己翻译和理解&…...
嵌入式 Linux 学习
在学习嵌入式 Linux 之前,我们先来了解一下嵌入式 Linux 有哪些东西。 1. 嵌入式 Linux 的组成 嵌入式 Linux 系统,就相当于一套完整的 PC 软件系统。 无论你是 Linux 电脑还是 windows 电脑,它们在软件方面的组成都是类似的。 我们一开电…...
Makedown语法
这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...
SQLite语句
1.重写SQLiteOpenHelper // 例. public class MySQLiteOpenHelper extends SQLiteOpenHelper {public MySQLiteOpenHelper(Nullable Context context, Nullable String name, Nullable SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, ve…...
Spring揭秘:Aware接口应用场景及实现原理!
内容概要 Aware接口赋予了Bean更多自感知的能力,通过实现不同的Aware接口,Bean可以轻松地获取到Spring容器中的其他资源引用,像ApplicationContext、BeanFactory等。 这样不仅增强了Bean的功能,还提高了代码的可维护性和扩展性&…...
校园小情书微信小程序,社区小程序前后端开源,校园表白墙交友小程序
功能 表白墙卖舍友步数旅行步数排行榜情侣脸漫画脸个人主页私信站内消息今日话题评论点赞收藏 效果图...
从Pandas到Polars :数据的ETL和查询
对于我们日常的数据清理、预处理和分析方面的大多数任务,Pandas已经绰绰有余。但是当数据量变得非常大时,它的性能开始下降。 本文将介绍如何将日常的数据ETL和查询过滤的Pandas转换成polars。 图片 Polars的优势 Polars是一个用于Rust和Python的Data…...
Node.Js编码注意事项
Node.js 中不能使用 BOM 和 DOM 的 API,可以使用 console 和定时器 APINode.js 中的顶级对象为 global,也可以用 globalThis 访问顶级对象 浏览器端js的组成 Node.js中的JavaScript组成 相比较之下发现只有console与定时器是两个API所共有的ÿ…...
floodfill算法题目
前言 大家好,我是jiantaoyab,在下面的题目中慢慢体会floodFill算法,虽然是新的算法,但是用的思想和前面的文章几乎一样,代码格式也几乎一样,但不要去背代码 图像渲染 https://leetcode.cn/problems/flood…...
AI相关的实用工具分享
AI实用工具大赏:赋能科研与生活,探索AI的无限可能 前言 在数字化浪潮汹涌而至的今天,人工智能(AI)已经渗透到我们生活的方方面面,无论是工作还是生活,都在悄然发生改变。AI的崛起不仅为我们带…...
K8s — PVC|PV Terminating State
在本文中,我们将讨论PV和PVC一直Terminating的状态。 何时会Terminting? 在以下情况下,资源将处于Terminating状态。 在删除Bounded 状态的PVC之前,删除了对应的PV,PV在删除后是Terminting状态。删除PVC时,仍有引用…...
C语言 --- 指针(5)
目录 一.sizeof和strlen对比 1.sizeof 2.strlen 3.strlen 和sizeof的对比 二.数组和指针笔试题目详解 回顾:数组名的理解 1.一维数组 2.字符数组 代码1: 代码2: 代码3: 代码4: 代码5: 代码6&am…...
Android Studio Iguana | 2023.2.1版本
Android Gradle 插件和 Android Studio 兼容性 Android Studio 构建系统基于 Gradle,并且 Android Gradle 插件 (AGP) 添加了一些特定于构建 Android 应用程序的功能。下表列出了每个版本的 Android Studio 所需的 AGP 版本。 如果特定版本的 Android Studio 不支持…...
并查集(蓝桥杯 C++ 题目 代码 注解)
目录 介绍: 模板: 题目一(合根植物): 代码: 题目二(蓝桥幼儿园): 代码: 题目三(小猪存钱罐): 代码: …...
MapReduce内存参数自动推断
MapReduce内存参数自动推断。在Hadoop 2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:mapreduce.{map,reduce}.memory.mb和mapreduce.{map,reduce}.java.opts,一旦设置不合理,则会使得内存资源浪费严重&a…...
pyside6 pytq PyDracula QVideoWidget视频只有画面没有声音
解决方案: 先不使用框架,纯pyside6代码,如果添加视频有画面有声音,那可以排除是硬件问题,如果没有画面只有声音,可能是视频解码器无法解码,换个格式的视频文件如果只有使用PyDracula 出问题&am…...
BGE-Large-Zh应用案例:HR简历-岗位JD语义匹配效率提升300%实测
BGE-Large-Zh应用案例:HR简历-岗位JD语义匹配效率提升300%实测 1. 引言:HR的简历筛选之痛 想象一下,你是一名HR,面前有500份简历,需要匹配到10个不同的岗位。传统的做法是什么?要么靠关键词搜索ÿ…...
Linux V4L2核心子系统
一、drivers/media/v4l2-core 目录文件分析drivers/media/v4l2-core/ │ ├── 1. 字符设备核心模块 │ └── v4l2-dev.c # V4L2字符设备驱动核心 │ ├── video_device 注册/注销 │ ├── 申请主设备号(81) │ ├── 创建/dev…...
React Fiber 优先级调度优化
React Fiber 优先级调度优化:提升用户体验的核心机制 React Fiber 是 React 16 引入的全新架构,其核心目标是通过优先级调度优化,实现更流畅的用户交互体验。传统 React 的同步渲染机制可能导致高优先级任务(如用户输入ÿ…...
Qwen3-4B-Instruct-2507提示词编写技巧:如何让AI更懂你的需求
Qwen3-4B-Instruct-2507提示词编写技巧:如何让AI更懂你的需求 1. 为什么你的提示词总是不管用 你有没有遇到过这样的情况:你向AI模型提问,结果它要么答非所问,要么给你一堆没用的信息,要么干脆理解错了你的意思。你可…...
DDD难落地?就让AI干吧! - cleanddd-skills介绍窗
AI训练存储选型的演进路线 第一阶段:单机直连时代 早期的深度学习数据集较小,模型训练通常在单台服务器或单张GPU卡上完成。此时直接将数据存储在训练机器的本地NVMe SSD/HDD上。 其优势在于IO延迟最低,吞吐量极高,也就是“数据离…...
拆穿名词诈骗!用大白话理解晦涩难懂的AI概念谒
1. 架构背景与演进动力 1.1 从单体到碎片化:.NET 的开源征程 在.NET Framework 时代,构建系统主要围绕 Windows 操作系统紧密集成,采用传统的封闭式开发模式。然而,随着.NET Core 的推出,微软开启了彻底的开源与跨平台…...
SDD基于规范编程-OpenSpec及SuperPowers伟
智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式,即所谓的“工程导向型”开发,要求开发者创建一个复杂的项目结构,包括项目文件(.csproj)、解决方案文件(.sln)、属性设置以及依赖…...
MySQL进程监控与优化:高效查询与资源释放指南
1. MySQL进程监控基础:从入门到精通 刚接触MySQL数据库管理时,我最头疼的就是遇到服务器突然变慢的情况。后来才发现,学会查看和管理MySQL进程是解决问题的关键第一步。就像医院里的监护仪能显示病人生命体征一样,MySQL也提供了多…...
STM32CubeMX RTC万年历功能缺失的F103日期保存方案优化
1. STM32F103 RTC日期丢失问题解析 第一次用STM32F103做带RTC功能的产品时,我就被这个坑绊倒了。明明接了纽扣电池,断电后时间能正常走,但日期总会莫名其妙重置到初始值。后来查资料才发现,这是STM32CubeMX生成代码时的"祖传…...
在Windows系统安装Docker
在 Windows 上安装 Docker,核心是安装 Docker Desktop(官方 GUI 工具),并启用 WSL 2(推荐,性能最好)。以下是最新、最稳的完整教程(Win10/Win11 通用)。 一、先检查系统与…...
