华为OD机试 - 计算最大乘积(2022Q4 100分)

目录
- 专栏导读
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、解题思路
- 五、Java算法源码
- 六、效果展示
- 1、输入
- 2、输出
- 3、说明
华为OD机试 2023B卷题库疯狂收录中,刷题点这里
专栏导读
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
一、题目描述
给定一个元素类型为小写字符串的数组,请计算两个没有相同字符的元素长度乘积的最大值,
如果没有符合条件的两个元素,返回0。
二、输入描述
输入为一个半角逗号分隔的小写字符串的数组,2 <= 数组长度<=100,0 < 字符串长度<= 50。
三、输出描述
两个没有相同字符的元素 长度乘积的最大值。
四、解题思路
题目要求在给定的字符串数组中找出两个没有相同字符的元素,计算它们的长度乘积的最大值。
- 读取输入的字符串数组,使用逗号分隔得到字符串数组 arr;
- 定义变量 max 初始化为 0,用于保存最大的长度乘积;
- 使用两层循环遍历数组中的每对不同的字符串;
- 调用 check 方法检查两个字符串是否有相同字符,如果没有相同字符,则计算它们的长度乘积并更新 max;
- 输出结果 max。
解题思路分析:
该算法首先读取输入的字符串数组,并定义变量 max 用于保存最大的长度乘积。
然后,使用两层循环遍历字符串数组中的每对不同的字符串。对于每对字符串,调用 check 方法检查它们是否有相同字符。如果没有相同字符,则计算它们的长度乘积并与 max 进行比较,更新 max。
最后,输出结果 max。
check 方法用于检查两个字符串是否有相同字符。它首先将两个字符串转换为字符数组,并对字符数组进行排序。然后,使用双指针法比较两个字符数组的元素,如果找到相同的字符,返回 true;否则,返回 false。
五、Java算法源码
public static void main(String[] args) {Scanner sc = new Scanner(System.in);String[] arr = sc.nextLine().split(",");// 最大的长度乘积int max = 0;for (int i = 0; i < arr.length; i++) {for (int j = i + 1; j < arr.length; j++) {// 检查两个字符串是否有相同字符if (!check(arr[i], arr[j])) {// 如果没有相同字符,则计算它们的长度乘积并更新 maxmax = Math.max(max, arr[i].length() * arr[j].length());}}}System.out.println(max);
}/*** 检查两个字符串是否有相同字符*/
private static boolean check(String a, String b) {char[] arr1 = a.toCharArray();char[] arr2 = b.toCharArray();Arrays.sort(arr1);Arrays.sort(arr2);int i = 0;int j = 0;while (i < a.length() && j < b.length()) {if (arr1[i] == arr2[j]) {return true;} else if (arr1[i] > arr2[j]) {j++;} else if (arr1[i] < arr2[j]) {i++;}}return false;
}
六、效果展示
1、输入
qwerty,asd,qwesd,eraffa,qzxca
2、输出
18
3、说明
数组中有5个元素。
qwerty与asd无相同的字符,满足条件,qwerty的长度为6,asd的长度为3,乘积为18。
qwerty与qwesd、eraffa、qzxca均有相同的字符,不满足条件。
asd与qwesd、eraffa、qzxca均有相同的字符,不满足条件。
qwesd与eraffa,qzxca有相同的字符,不满足条件。
eraffa与qzxca有相同的字符,不满足条件。
因此,输出为18。

🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)
🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

相关文章:
华为OD机试 - 计算最大乘积(2022Q4 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…...
安卓RecycleView包含SeekBar点击列表底部圆形阴影处理
seekbar在列表中点击底部圆形阴影禁止显示方法 大家好,最近写了自定义的seekbar实现显示进度值,然而呢,我的seekbar控件是作为recycleview的item来使用的,我设置了禁止点击和滑动方法如下: seekBar.setOnTouchListene…...
计算机视觉中的可解释性分析
计算机视觉中的可解释性分析是指通过不同的方法和技术来解释和理解深度学习模型对图像或视频数据的预测和决策过程。这是一个非常重要的领域,因为深度学习模型通常被认为是“黑盒子”,很难理解其内部工作原理。可解释性分析的目标是提供对模型决策的更好…...
Python 爬虫报错分析
在使用requests库进行网络连接时出现了 ConnectionError: (Connection aborted., RemoteDisconnected(Remote end closed connection without response)) 这个错误。这个错误通常发生在以下几种情况: 目标服务器无法访问:可能由于服务器宕机、网络故障…...
[python 刷题] 3 Longest Substring Without Repeating Characters
[python 刷题] 3 Longest Substring Without Repeating Characters 题目: Given a string s, find the length of the longest substring without repeating characters. 这到提要求找的是最长的,没有重复符号的子字符串 解题思路是用双指针哈希表&…...
阿里云轻量应用服务器流量价格表(计费/免费说明)
阿里云轻量应用服务器套餐有的限制月流量,有的不限制月流量,限制每月流量的套餐,如果自带的免费月流量包用完了,流量超额部分需要另外支付流量费,阿里云百科aliyunbaike.com分享阿里云轻量应用服务器月流量超额收费价格…...
C++设计模式-装饰器(Decorator)
目录 C设计模式-装饰器(Decorator) 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-装饰器(Decorator) 一、意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子…...
【C语言】结构类型的定义和使用
目录 1.结构体(struct)类型 2.结构标记 3.typedef 4.定义结构数组的方法 5.调用结构数组的方法 6.将结构体传入函数 7.结构体使用实例 1.结构体(struct)类型 在C语言中,结构体(struct…...
C++内存管理:其二、数组内存管理
一、new一个对象数组 如果我们想在堆内存上创建一个对象数组,可以这么写: Complex * pca new Complex[3]; 主要做三件事: (1)申请一块内存,足够放置三个Complex对象。 (2)执行三次…...
No169.精选前端面试题,享受每天的挑战和学习
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…...
Hadoop设置hdfs全局指令
在终端进入用户个人环境变量配置文件 vim ~/.bashrc 然后添加如下内容 export PATH$PATH:/usr/local/hadoop/bin 添加到你的hadoop下载目录的bin目录为止就可以了 重新激活一下配置文件 source ~/.bashrc hdfs有专属于自己的文件存储目录,加上特殊的指令就可以箱终端一…...
IDEA 2023.1.3图文安装教程及下载
IDEA 2023.1 最新变化是在 IDEA 2023.1 中,对新 UI 做出了大量改进。实现了性能增强,从而更快导入 Maven,以及在打开项目时更早提供 IDE 功能。 新版本通过后台提交检查提供了简化的提交流程。 IntelliJ IDEA Ultimate 现在支持 Spring Secur…...
【JVM】运行时数据区(内存区域划分)详解
文章目录 前言一、JVM 运行时数据区1, 堆2, Java 虚拟机栈3, 本地方法栈4, 程序计数器5, 元数据区 / 方法区 二、内存异常问题1, 栈溢出2, 内存溢出3, 内存泄露 总结 前言 📕各位读者好, 我是小陈, 这是我的个人主页 📗小陈还在持续努力学习编程, 努力通…...
Python-Scrapy框架(框架学习)
一、概述 Scrapy是一个用于爬取网站数据的Python框架,可以用来抓取web站点并从页面中提取结构化的数据。 基本组件: 引擎(Engine):负责控制整个爬虫的流程,包括调度请求、处理请求和响应等。 调度器(Scheduler):负责…...
flink生成水位线记录方式--基于特殊记录的水位线生成器
背景 在flink基于事件的时间处理中,水位线记录的生成是一个很重要的环节,本文就来记录下几种水位线记录的生成方式的其中一种:基于特殊记录的水位线生成器 基于特殊记录的水位线生成器 我们发送的事件中,如果带有某条特殊记录的…...
Arcgis日常天坑问题(1)——将Revit模型转为slpk数据卡住不前
这段时间碰到这么一个问题,revit模型在arcgis pro里导出slpk的时候,卡在98%一直不动,大约有两个小时。 首先想到的是revit模型过大,接近300M。然后各种减小模型测试,还是一样的问题,大概花了两天的时间&am…...
JavaWeb:上传文件
1.建普通maven项目,或者maven项目,这里以普通maven为例,区别的jar包的导入方式啦 到中央仓库下载哦 2.结构 3.写fileservlet public class FileServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpSe…...
STM32 大小端与字节对齐使用记录
大小端 串口数据包解析 MDK stm32 小段模式 接收到的数据包: DD 03 00 1B 11 59 00 00 00 00 17 70 00 00 2F 39 00 00 00 00 00 03 23 64 00 0E 02 0B 6E 0B 84 FC EA 77 其中数据内容为: DD 03 00 1B 11 59 //电压mV 00 00 00 00 17 70 …...
RabbitMQ中basic**方法汇总与参数解释
当使用RabbitMQ进行消息传递时,Channel对象提供了一组称为"basic方法"的方法,用于执行最基本的消息传递操作。在本篇博客中,我们将详细介绍这些方法,包括示例和参数解释。 1. basicPublish 方法 basicPublish 方法用于…...
linux之/etc/default/useradd文件
/etc/default/useradd文件是在使用useradd添加用户时,一个需要调用的默认的配置文件之一,可以使用命令"useradd -D"进行修改。 useradd用法: [rootcentos79-3 mail]# useradd --help Usage: useradd [options] LOGINuseradd -Dus…...
nanomsg性能基准测试终极指南:不同消息大小下的吞吐量对比分析
nanomsg性能基准测试终极指南:不同消息大小下的吞吐量对比分析 【免费下载链接】nanomsg nanomsg library 项目地址: https://gitcode.com/gh_mirrors/na/nanomsg nanomsg是一个轻量级、高性能的消息传递库,专为解决常见的通信模式而设计。作为na…...
Sourcetrail实战:如何利用可视化分析加速大型C++项目代码理解
1. 为什么大型C项目需要可视化分析工具 接手一个百万行级别的C项目是什么体验?我第一次接触MariaDB源码时,面对层层嵌套的类继承、错综复杂的函数调用链,光是理清handler类的派生关系就花了整整两天。这种经历让我深刻意识到:传统…...
AI核心概念串联
目录一、Tokenizer二、LLM三、Context四、RAG五、Prompt六、Tool七、MCP八、Agent九、Skill原UP主视频:从 LLM 到 Agent Skill,一期视频带你打通底层逻辑! 一、Tokenizer 用户每次输入都是一串连续的句子,而LLM的最小单位是toke…...
强强联合!望石智慧携手华为、华鲲振宇发布AI药物研发联合解决方案,共筑中国智慧医药创新生态
近日,以“因聚而升 融智有为”为主题的华为中国合作伙伴大会2026在深圳圆满落幕。望石智慧作为其国内AI驱动医药创新领域的核心技术伙伴受邀参会,并在智能制造医药行业论坛发表演讲。会议期间,望石智慧、华为、华鲲振宇三方达成战略级生态合作…...
PCB Layout实战:信号走线绕过ESD/TVS管,为何防护会失效?
1. 信号走线绕过ESD/TVS管的隐患 很多工程师在PCB设计时都听过一个原则:信号走线要先经过ESD/TVS保护器件,再连接到被保护芯片。但在实际项目中,由于空间限制或布线困难,经常会出现信号线先连接到芯片,再绕回保护器件的…...
三步修复Windows安全防护:零基础系统工具恢复指南
三步修复Windows安全防护:零基础系统工具恢复指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/wi/wind…...
FPGA设计避坑指南:手把手教你搞定跨时钟域信号同步(附Verilog代码)
FPGA设计避坑指南:跨时钟域信号同步的工程实践与Verilog实现 在FPGA开发中,跨时钟域信号同步问题就像电路设计中的"暗礁",稍有不慎就会导致整个系统崩溃。想象一下这样的场景:你的设计在仿真阶段完美运行,但…...
4个步骤让普通用户实现黑苹果EFI自动生成:OpCore Simplify智能工具全解析
4个步骤让普通用户实现黑苹果EFI自动生成:OpCore Simplify智能工具全解析 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 如何用智能工具解…...
还在纸上谈Agent?来搓一只你的「腾讯小龙虾」
大模型卷完参数,开始卷落地。当所有人还在谈论AI Agent如何颠覆未来工作方式时,一部分开发者已经让它为自己“打工”了。从写一封邮件,到整理一份报告,再到串联多个系统完成业务动作,AI 正在完成一次关键的身份跃迁&am…...
OpenClaw技能开发:为QwQ-32B添加股票数据查询功能
OpenClaw技能开发:为QwQ-32B添加股票数据查询功能 1. 为什么需要开发股票查询技能 去年我在研究量化交易策略时,经常需要手动查询股票数据。每次打开浏览器、登录交易平台、输入代码、导出CSV的重复操作让我疲惫不堪。直到发现OpenClaw可以通过技能扩展…...
