【洛谷算法题】P4414-[COCI2006-2007#2] ABC【入门2分支结构】Java题解
👨💻博客主页:@花无缺
欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 花无缺 原创收录于专栏 【洛谷算法题】
文章目录
- 【洛谷算法题】P4414-[COCI2006-2007#2] ABC【入门2分支结构】Java题解
- 🌏题目描述
- 🌏输入格式
- 🌏输出格式
- 🌏题面翻译
- 🌏样例 #1
- 🌙样例输入 #1
- 🌙样例输出 #1
- 🌏样例 #2
- 🌙样例输入 #2
- 🌙样例输出 #2
- 💡题解
- 🌏总结
【洛谷算法题】P4414-[COCI2006-2007#2] ABC【入门2分支结构】Java题解
[COCI2006-2007#2] ABC - 洛谷
🌏题目描述
You will be given three integers A, B and C. The numbers will not be given in that exact order, but we do know that A is less than B and B less than C.
In order to make for a more pleasant viewing, we want to rearrange them in the given order.
🌏输入格式
The first line contains three positive integers A, B and C, not necessarily in that order. All three numbers will be less than or equal to 100.
The second line contains three uppercase letters ‘A’, ‘B’ and ‘C’ (with no spaces between them) representing the desired order.
🌏输出格式
Output the A, B and C in the desired order on a single line, separated by single spaces.
🌏题面翻译
【题目描述】
三个整数分别为 A , B , C A,B,C A,B,C。这三个数字不会按照这样的顺序给你,但它们始终满足条件: A < B < C A < B < C A<B<C。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。
【输入格式】
第一行包含三个正整数 A , B , C A,B,C A,B,C,不一定是按这个顺序。这三个数字都小于或等于 100 100 100。第二行包含三个大写字母 A A A、 B B B 和 C C C(它们之间没有空格)表示所需的顺序。
【输出格式】
在一行中输出 A A A, B B B 和 C C C,用一个
(空格)隔开。
🌏样例 #1
🌙样例输入 #1
1 5 3
ABC
🌙样例输出 #1
1 3 5
🌏样例 #2
🌙样例输入 #2
6 4 2
CAB
🌙样例输出 #2
6 2 4
💡题解
import java.util.Scanner;
import java.util.Arrays;public class P4414 {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 数组 a 保存三个整数int[] a = new int[3];for (int i = 0; i < a.length; i++) {a[i] = in.nextInt();}// 将整数进行从小到大排序Arrays.sort(a);// 将三个大写字母作为一个字符串读取String str = in.next();for (int i = 0; i < a.length; i++) {// 根据字母的 ASCII 码和数组 a 的下标的对应关系输出对应的字母// A 对应数值最小的数, 也就是 a[0]// B 对应数值中间大的数, 也就是 a[1]// C 对应数值最小的数, 也就是 a[2]System.out.print(a[str.charAt(i) - 65]);// 输出空格if (i != 2)System.out.print(" ");}in.close();}
}
🌏总结
题意:根据三个字母的顺序重新排序三个整数的顺序,字母 A 对应最小的数,字母 B 对应大小为第二的数,字母 C 对应最大的数。
这个题我们其实可以采用一种很直接的方式就是使用选择结构,根据 ABC 顺序的不同,输出 3 个整数的不同的顺序,例如对于样例#1 :“1 5 3”,如果字母是 “ABC”,我们就输出“1 3 5”,如果字母是 “”ACB,我们就输出”1 5 3“,依次类推。
虽然这种方式很直接简单,但是未免太低效了一点。这里我采用了一种更为高效的方法,因为 ABC 三个字符在 ASCII 码表中是连续的,所以他们的 ASCII 码是连续递增的,一个比一个大,所以我们可以将整数存储在数组中,并将字符的 ASCII 码与数组的下标对应起来,那么具体如果对应呢,ABC 的 ASCII 码是依次递增的,数组的下标也是依次递增的,所以我们可以根据这个关系,将数组中的整数按从小到大的顺序排列,然后根据字符顺序输出对应的整数。
再多思考一些,其实以上思路就是数据结构“哈希表”的一个非常简单的应用,如果你不知道什么是“哈希表”,但是对算法很感兴趣,可以尝试搜索“哈希表”;
另外,上题你可能会遇到的语法问题,输入字符串时不要使用 nextLine(),不然会发生异常。如果你说我就想用 next() 不行吗,答案是可以,但是要在这之前加上一条语句:in.nextLine()
。
作者:花无缺(huawuque404.com)
🌸欢迎
关注
我的博客:花无缺-每一个不曾起舞的日子都是对生命的辜负~
🍻一起进步-刷题专栏:【洛谷算法题】
🥇往期精彩好文:
📢【CSS选择器全解指南】
📢【HTML万字详解】
你们的点赞👍 收藏⭐ 留言📝 关注✅
是我持续创作,输出优质内容
的最大动力!
谢谢!
相关文章:

【洛谷算法题】P4414-[COCI2006-2007#2] ABC【入门2分支结构】Java题解
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P4414-[COCI2006-2007#2] ABC【入门2分支结构】Java题解🌏题目描述&a…...

Python如何将图片转换成字符
PIL(Python Image Library)库是Python平台上一个功能强大的图像处理标准库,支持图像的存储、显示和处理,几乎可以处理所有图片格式,如图像的压缩、裁剪、叠加、添加文字等等。 安装PIL库:pip install pillow from PIL import Image ascii_cha…...

国家开放大学形成性考核 统一资料 参考试题
试卷代号:1174 水工钢筋混凝土结构(本)参考试题 一、选择题(每小题2分,共20分,在所列备选项中,选1项正确的或最好的作为答案,将选项号填入各题的括号中) 1.钢筋混凝土结…...

4.7 【共享源】流的生产者(二)
七,模式 流的模式决定了Screen如何使前台缓冲区可用。生产者通过调用screen_set_stream_property_iv()并设置SCREEN_PROPERTY_MODE属性来设置模式。有效模式如下: 7.1 SCREEN_STREAM_MODE_DEFAULT 如果生产者应用程序没有在流上明确设置 SCREEN_PROPERTY_MODE 属性,则 Sc…...

流量录制回放工具在自动化测试领域应用探索
引言: 随着中国农业银行技术架构的日益更迭与业务场景的不断创新,测试工作正在面临数据构造繁琐、案例维护成本较高且质量参差不齐等诸多问题与挑战,主要体现在以下四方面: 一是在系统架构升级与代码重构时,大量原始接…...

【高数定积分求解旋转体体积】 —— (上)高等数学|定积分|柱壳法|学习技巧
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 Shell method Setting up the Integral 例题 Example 1: Example 2: Example 3: Example …...

Ubuntu20.04 及深度学习环境anaconda、cuda、cudnn、pytorch、paddle2.3安装记录
学习目标: Ubuntu20.04下装好torch、paddle深度学习环境。 选择的版本环境是 :最新的nvidia驱动、cuda 11.1 、cudnn v8.1.1,下面会说为啥这么选。 学习内容: 1. Ubuntu20.04仓库换源 本节参考Ubuntu 20.04 Linux更换源教程 2…...
场景切割CVPr2022 SceneSegmentation
目录 算法介绍 无监督训练原理 源码地址: lstm模块 bilstm opencv场景分割 加阈值:...
Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
如果你的项目使用了SpringCloud微服务技术,那么你就可以使用Feign来作为http客户端来调用远程的http服务。当然,如果你不想使用Feign作为http客户端,也可以使用比如JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client或者Spring的RestTemplate。 那么,为…...
[node] Node.js的文件系统
[node] Node.js的文件系统 文件系统的使用异步和同步input.txt示例 常用方法打开文件语法示例 获取文件信息语法示例 写入文件语法示例 读取文件语法示例 关闭文件语法示例 截取文件语法示例 删除文件语法示例 创建目录语法示例 读取目录语法示例 删除目录语法示例 文件模块方法…...

【Linux系统基础】(2)在Linux上部署MySQL、RabbitMQ、ElasticSearch、Zookeeper、Kafka、NoSQL等各类软件
实战章节:在Linux上部署各类软件 前言 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,…...
CJson 使用 - 解析Object结构
简介 准备在开发板中使用json结构传送数据, 选用了cJson, 现在看下cJson的使用吧步骤 下载 git clone https://github.com/DaveGamble/cJSON 或者直接压缩包下载也行, 毕竟国内有时候下载不下来Qt 中使用cJson 在下载的cJson 目录中加入cJson.pri, 内容如下 INCLUDEPATH …...
MySQL8主主搭建
-- mysql8 主主搭建 mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz 主1 : 192.168.2.160 主2 : 192.168.2.161 --解压mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz为mysql8 -- 初始化mysql8 (略) -- 参数192.168.2.160 [root…...

使用Pycharm一键将.ui文件生成.py文件配置教程、一键打开QTDesigner教程
2df3621a-7ffd-4f18-9735-b86464b83a5b 前言 我痛恨所有将白嫖归为理所应当的猪🐖。 教程 打开pycharm之后,依次点击File->Settings->Tools->External Tools,进入如下界面: 1、配置快捷打开Qt Designer 点击号&…...

React 路由跳转
1. push 与 replace 模式 默认情况下,开启的是 push 模式,也就是说,每次点击跳转,都会向栈中压入一个新的地址,在点击返回时,可以返回到上一个打开的地址, 就像上图一样,我们每次返…...
【MySQL】数据处理:从SQL批量删除报错到Python优雅解决
一、背景 MySQL数据库表中有一批重复的脏数据,为不影响正常业务,需要进行批量删除。 二、SQL批量删除 首先想到的是编写SQL语句来批量删除:删除身份证号为51****59且ID不为5的全部数据(保留ID为5的那一条数据) DELETE FROM test_table WHERE id IN ( SELECT i…...
Rust 软件测试
Rust 第18节 软件测试 测试已写的函数 在创建每一个lib crate时,rust都会自动生产一个测试 mod;名字为tests; tests mod 被属性 #[cfg(test)] 修饰,用于测试; 在mod 内,需要在函数头上加属性 #[test]进行修饰,让其变为…...

win11下配置visual studio 2022+PCL1.13.1
第一部分:visual studio2022 安装 vs官网网址如下:https://visualstudio.microsoft.com/zh-hans/vs/ 第一步:我们打开官网链接,按如下操作点击下载免费版本的exe文件 第二步:打开下载目录下的安装文件进行安装&#…...

智能优化算法应用:基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.法医调查算法4.实验参数设定5.算法结果6.…...

【分享】4个方法打开PDF文件
PDF是很多人工作中经常使用的电子文档格式,但是可能有些刚接触的小伙伴不知道用什么工具来打开PDF文件,今天小编就来分享一下4种常用的工具。 1. 使用浏览器 只要有电脑基本都会安装一到两款浏览器,其实浏览器也可以用来打开PDF文件。 只需…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...