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

news2024/11/16 13:34:36

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

给定一个元素类型为小写字符串的数组,请计算两个没有相同字符的元素长度乘积的最大值,

如果没有符合条件的两个元素,返回0。

二、输入描述

输入为一个半角逗号分隔的小写字符串的数组,2 <= 数组长度<=100,0 < 字符串长度<= 50。

三、输出描述

两个没有相同字符的元素 长度乘积的最大值。

四、解题思路

题目要求在给定的字符串数组中找出两个没有相同字符的元素,计算它们的长度乘积的最大值。

  1. 读取输入的字符串数组,使用逗号分隔得到字符串数组 arr;
  2. 定义变量 max 初始化为 0,用于保存最大的长度乘积;
  3. 使用两层循环遍历数组中的每对不同的字符串;
  4. 调用 check 方法检查两个字符串是否有相同字符,如果没有相同字符,则计算它们的长度乘积并更新 max;
  5. 输出结果 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])) {
                // 如果没有相同字符,则计算它们的长度乘积并更新 max
                max = 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在线答疑。

在这里插入图片描述

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

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

相关文章

分贝定义简介

一、什么是分贝 辅助单元Bel表示任何给定部件、电路或系统的输入和输出之间的对数比L,并且可以用电压、电流或功率来表示: 如果使用场量(电压或电流)代替功率量,则: 我们可以将增益或损耗因子相加为正或负dB值,而不是将其乘以比率。 分贝与功率转化的速读表如下所示:…

流程图设计制作都有哪些好用的工具

流程图是一种直观的图形表示方式&#xff0c;通常用于显示事物的过程、步骤和关系。在现代工作中&#xff0c;设计师经常需要绘制各种流程图来解释工作过程、产品设计等。本文将为您推荐7个流程图软件&#xff0c;以帮助您快速绘制高效的流程图&#xff0c;并提高工作效率。 即…

IDEA 2021.2.2设置自动热部署

1.导入包坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency> 2.pom.xml添加piugins插…

Redis-双写一致性

双写一致性 双写一致性解决方案延迟双删&#xff08;有脏数据的风险&#xff09;分布式锁&#xff08;强一致性&#xff0c;性能比较低&#xff09;异步通知&#xff08;保证数据的最终一致性&#xff0c;高并发情况下会出现短暂的不一致情况&#xff09; 双写一致性 当修改了数…

光伏并网逆变器低电压穿越技术研究(Simulink仿真)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

JavaScript系列从入门到精通系列第十八篇:JavaScript中的函数作用域

文章目录 前言 一&#xff1a;函数作用域 前言 我们刚才提到了&#xff0c;在<Script>标签当中进行定义的变量、对象、函数对象都属于全局作用域&#xff0c;全局作用域在页面打开的时候生效在页面关闭的时候失效。 一&#xff1a;函数作用域 调用函数时创建函数作用域…

New Journal of Physics:不同机器学习力场特征的准确性测试

文章信息 作者&#xff1a;Ting Han1, Jie Li1, Liping Liu2, Fengyu Li1, * and Lin-Wang Wang2, * 通信单位&#xff1a;内蒙古大学物理科学与技术学院、中国科学院半导体研究所 DOI&#xff1a;10.1088/1367-2630/acf2bb 研究背景 近年来&#xff0c;基于DFT数据的机器学…

Docker安装及基本使用

一、Docker安装 1.下载关于Docker的依赖环境 在Xterm中输入以下代码安装依赖环境 回车 yum -y install yum-utils device-mapper-persistent-datalvm2 2.设置一下下载Docker的镜像源 依赖环境下载完毕以后&#xff0c;设置下载的镜像源&#xff0c;如果不设置&#xff0c…

使用Docker部署Redis(单机部署)

目录 一、查看Redis镜像版本二、拉取自己需要的镜像版本三、创建挂载目录四、添加配置文件五、运行Redis容器六、连接测试 一、查看Redis镜像版本 先去Docker Hub查看Redis镜像有那些版本&#xff0c;我部署的时候Redis最新已经到7.x的版本了&#xff0c;我这里准备部署6.x的版…

17哈希表-简单遍历

目录 LeetCode之路——383. 赎金信 分析&#xff1a; 解法一&#xff1a;哈希表 解法二&#xff1a;数组 LeetCode之路——383. 赎金信 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&…

pinduoduo.item_get拼多多平台根据ID取商品详情 API 封装数据接口返回值说明

参数说明 通用参数说明 version:API版本key:调用key,测试key:test_api_keyapi_name:API类型[item_search,item_get]cache:[yes,no]默认yes&#xff0c;将调用缓存的数据&#xff0c;速度比较快result_type:[json,xml,serialize,var_export]返回数据格式&#xff0c;默认为jsonl…

【SQL】MySQL中的约束

1. 主键约束&#xff08;primary key&#xff09;&#xff1a; 相当于唯一约束非空约束分为单列主键&#xff0c;多列联合主键&#xff0c;一个表只有一个主键多列联合主键的每列都不能为空 2. 自增长约束&#xff08;auto_increment&#xff09;&#xff1a; 用在单列主键后…

Druid数据库连接池

spring:datasource:username: rootpassword: 19990802url: jdbc:mysql://localhost:3306/mybatis?useUnicodetrue&characterEncodingutf-8&serverTimezoneGMTdriver-class-name: com.mysql.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource # type可以指定…

【C++设计模式之迭代器模式】分析及示例

简介 迭代器模式是一种行为型设计模式&#xff0c;它提供了一种顺序访问聚合对象元素的方法&#xff0c;而又不需要暴露聚合对象的内部结构。迭代器模式通过将遍历算法封装在迭代器对象中&#xff0c;可以使得遍历过程更简洁、灵活&#xff0c;并且符合开闭原则。 描述 迭代…

有哪些靠谱的程序员兼职平台?

随着时代需求的增长和程序员人才市场的日益饱和&#xff0c;程序员接私活已经不再是一个新鲜的话题了。不得不说&#xff0c;靠接单赚钱是真的爽&#xff0c;感觉会比正经工资收入更奇妙。 但是&#xff0c;从接单数量、质量&#xff0c;到薪资多少&#xff0c;再到时间安排等…

量化交易是什么意思,量化到底是怎么赚钱的?

能直连交易所&#xff0c;获取完整、实时、准确的数据。必须有交易接口&#xff0c;根据策略指令&#xff0c;实现下单撤单&#xff0c;自动交易&#xff0c;获取账户资金和持仓。渠道要安全正规&#xff0c;不通过第三方中转。有了这几点保障才能安全地开始量化交易 在这个金…

笔试强训Day14Day15

T1&#xff1a;幸运的袋子 链接&#xff1a;幸运的袋子__牛客网 (nowcoder.com) 题目描述&#xff1a; 一个袋子里面有n个球&#xff0c;每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。 例如&…

socket简介

套接字&#xff08;Socket&#xff09;实质上就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端&#xff0c;为应用层进程利网络协议交换数据提供了相应机制。套接字出于承上启下的作用&#xff0c;向上连接应用进程&#xf…

【CVE-2023-35843】NocoDB 任意文件读取漏洞

一、漏洞描述 NocoDB 是 Airtable 的开源替代方案&#xff0c;可以“一键”将 MySQL、PostgreSQL、SQL Server、SQLite 和 MariaDB 转换为智能电子表格。此软件存在任意文件读取漏洞。 二、影响范围 NocoDB<0.106.1 三、网络空间搜索引擎搜索 fofa查询 icon_hash"-…

Spring Boot 常用注解大全:每个程序员必备

文章目录 1. SpringBootApplication2. RestController 和 RequestMapping3. Autowired4. Service、Repository 和 Component5. Configuration6. Value7. Qualifier8. ConditionalOnProperty9. Async10. Scheduled11. EnableCaching12. PathVariable 和 RequestParam13. Request…