【洛谷算法题】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万字详解】
你们的点赞👍 收藏⭐ 留言📝 关注✅
是我持续创作,输出优质内容的最大动力!
谢谢!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EDAS微服务应用同城容灾最佳实践

简介&#xff1a; 大多数业务应用只要做到同城双活&#xff0c;就可以避免掉大多数数据中心不可用故障。本实践就是帮助大家高效、低成本地实现自己的业务应用具备同城双活容灾能力。 前言 上云目前已经是绝大数企业首选的IT基础设施建设方案&#xff0c;但是云上仍然存在一些…

脸书推出VR视频会议应用程序 正式跨出元宇宙第一步;三家公司新入选福布斯2021云计算百强榜;微软挖来亚马逊云业务顶级高管贝尔...

NEWS本周新闻回顾微软挖来亚马逊云业务顶级高管贝尔微软公司已经聘请亚马逊云业务高管查理贝尔担任其企业副总裁。鉴于微软的Azure 云业务正试图从亚马逊 AWS 手中争夺份额&#xff0c;这一挖角行动可以说是微软的一次胜利。在亚马逊前 AWS 主管安迪贾西被任命为亚马逊 CEO 后&…

三字经带拼音a4打印版_人教版八年级下册英语6单元重点单词带音标打印版

UNIT 6shoot [ʃu:t] v. 投篮&#xff0c;射击&#xff0c;发射stone [stəʊn] n. 石头weak [wi:k] adj. 虚弱的&#xff0c;柔弱的god [ɡɒd] n. 上帝&#xff0c;神remind [rɪmaɪnd] v. 提醒&#xff0c;使想起bit [bɪt] n. 一点&#xff0c;小块a little bit 有点儿&am…

拥抱云原生,Fluid结合JindoFS :阿里云OSS加速利器

简介&#xff1a; Fluid 是一个开源的 Kubernetes 原生的分布式数据集编排和加速引擎&#xff0c;主要服务于云原生场景下的数据密集型应用。在 Fluid 上使用和部署 JindoRuntime 实现数据集的可见性、弹性伸缩、数据迁移、计算加速等&#xff0c;并流程简单、兼容原生 k8s 环境…

【观点】传统企业如何在数字化时代实现进化?

简介&#xff1a; 我们看到的数字化的大多数场景集中于日常商业消费活动&#xff0c;背后其实是超越个体行为的场景变革。 究竟是谁在承载这个时代一步步走进数字化场景&#xff1f;又是谁通过数字化技术与解决方案帮助他们实现场景变革&#xff1f;这个过程是什么样的&#xf…

网易数帆发布轻舟低代码平台2.0,聚焦中等复杂度企业级应用

编辑 | 宋 慧 出品 | CSDN云计算 头图 | 轻舟低代码平台2.0发布会现场 8月26日&#xff0c;网易数帆正式发布轻舟低代码应用开发平台2.0版本&#xff08;以下简称“轻舟低代码平台”&#xff09;&#xff0c;以全新的可视化编程语言为特色&#xff0c;针对中等复杂度的企业级应…

宝塔 开启_宝塔面板安装完的一些列操作

前言新安装的宝塔会有很多地方需要配置&#xff0c;如果懂的大佬可以跳过&#xff0c;如果是小白可以按照辉哥的教程一步步操作&#xff0c;辉哥是以虚拟机进行操作的&#xff0c;但是服务器也是一样的道理&#xff01;安全入口因为现在使用宝塔面板的人数在激增。所以为了避免…

黑灰产攻击洪峰来袭,企业如何守住自己的钱袋子?

简介&#xff1a; 风控大考最佳实践 根据阿里云历史行业风险治理相关数据显示&#xff0c;未经风险管控的自然流量中&#xff0c;约三分之一比例属于疑似黑灰产的高风险行为&#xff1b;而在建立合理的风控指标监控体系并采取风险防控手段后&#xff0c;高风险用户比例下降至3%…

服务网格的最佳实践

简介&#xff1a; 服务网格是用于处理服务间通信的专用基础设施层。它负责通过包含现代云原生应用程序的复杂服务拓扑来可靠地传递请求。 微服务发展的这几年&#xff0c;新的技术和概念层出不穷&#xff0c;这些技术的引入本质上都是在围绕服务稳定性和业务开发效率提升&#…

高性能开发,别点,发际线要紧!

作者&#xff1a;轩辕之风O来源&#xff1a;编程技术宇宙-前言-程序员经常要面临的一个问题就是&#xff1a;如何提高程序性能&#xff1f;这篇文章&#xff0c;我们循序渐进&#xff0c;从内存、磁盘I/O、网络I/O、CPU、缓存、架构、算法等多层次递进&#xff0c;串联起高性能…

如何打造一个高性能的前端智能推理引擎

简介&#xff1a; 什么是前端智能推理引擎又该如何打造和应用呢&#xff1f; 什么是前端智能推理引擎 在前端智能推理引擎之前&#xff0c;我们先来说一下什么是”端智能”。 端智能&#xff08;On-Device Machine Learning&#xff09;是指把机器学习的应用放在端侧做。这里…

115配额怎么增加_笔电、平板接口少怎么办,ORICO八合一多功能扩展坞助你一臂之力...

现在笔记本电脑大多都往轻薄的外形上发展&#xff0c;保持性能的前提下可以增加移动的便捷性&#xff0c;但是弊端同样明显&#xff0c;那就是牺牲掉了一部分常用接口。比如我手上这部戴尔XPS&#xff0c;左右两侧加起来只有4个可怜的接口&#xff0c;其中还包括一个SD槽&#…

OpenYurt:延伸原生 Kubernetes 到边缘场景下的落地实践

简介&#xff1a; 随着云原生技术的逐步成熟&#xff0c;阿里云容器服务团队在具体落地实践过程中不断探索云原生技术的应用边界。同时随着物联网和 5G 的迅猛发展&#xff0c;传统的边缘计算架构已经不能满足业务发展的需要。 如何基于云原生技术构建新一代的边缘计算平台成为…

对象存储,为什么那么火?

作者|小枣君 来源|鲜枣课堂引言上期文章&#xff08;链接&#xff1a;关于存储技术的最强入门科普&#xff09;&#xff0c;小枣君给大家详细介绍了数据存储技术的基本知识&#xff0c;其中重点对DAS、SAN和NAS技术进行了对比分析。我们知道&#xff0c;在很长的一段时间里&…

使用react实现select_React笔记——核心概念:9.表单

1、受控组件在 React 中&#xff0c;可变状态(mutable state)通常保存在组件的 state 属性中&#xff0c;并且只能通过使用 setState()来更新。state&#xff1a;唯一数据源渲染表单的 React 组件还控制着用户输入过程中表单发生的操作。被 React 以这种方式控制取值的表单输入…

压测场景下的 TIME_WAIT 处理

简介&#xff1a; 压测场景下的 TIME_WAIT 处理 1. 序 某专有云项目具备压测场景&#xff0c;在Windows的压测机上用 LoadRunner 进行业务的压力测试&#xff0c;压测运行一段时间后出现大量端口无法分配的报错。 其实通过问题描述&#xff0c;以及 Windows的报错信息基本确定…

DataX在数据迁移中的应用

简介&#xff1a; DataX在数据迁移中的应用 1. DataX定义 首先简单介绍下datax是什么。 DataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台&#xff0c;实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS…

华为发布《绿色5G白皮书》,定义绿色5G网络八大技术方向

全球“碳达峰、碳中和”已成主流趋势&#xff0c;为了助力全球运营商绿色网络“双碳”行动计划的达成&#xff0c;在华为首届无线媒体沙龙上&#xff0c;华为无线网络SRAN产品线总裁马洪波发表了“绿色5G&#xff0c;E2四化八大方向&#xff0c;共赢双碳未来”主题演讲&#xf…

判断是否包含大写字符_Python最常用的数据类型中字符串基础函数使用知识点讲解...

字符串是 pthon 中最常用的数据类型。我们可以使用单引号、双引号或者三对单双引号来创建字符串。创建字符串很简单&#xff0c;只要为变量分配一个值即可。Python 的字符串有什么内建函数可以使用&#xff1f;len()方法返回对象(字符、列表、元组等)长度或项目个数。每个字符一…

Arthas 使用的各类方式

简介&#xff1a; Arthas 是阿里巴巴开源的 Java 诊断工具。让我们能够在线排查项目发生的问题。除了知道它的存在之外&#xff0c;我们也需要知道我们如何去安装使用它&#xff0c;以便于提高我们日常开发解决 BUG 的效率。 方案介绍 方案一&#xff1a;本地直接运行 往往最…