华为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…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
