ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【华为机试】2023年真题B卷(python)-计算最大乘积

2026/9/21 2:45:25 拓冰建站 浏览量
【华为机试】2023年真题B卷(python)-计算最大乘积

一、题目

题目描述:

给定一个元素类型为小写字符串的数组,请计算两个没有相同字符的元素长度乘积的最大值,如果没有符合条件的两个元素,返回0。

二、输入输出

输入描述:
输入为一个半角逗号分隔的小写字符串的数组,2 <= 数组长度<=100,0 < 字符串长度<= 50。
输出描述:
两个没有相同字符的元素 长度乘积的最大值。

三、示例

示例1:
输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
iwdvpbn,hk,iuop,iikd,kadgpf
输出:
14
说明:
数组中有5个元素。
iwdvpbn与hk无相同的字符,满足条件,iwdvpbn的长度为7,hk的长度为2,乘积为14(7*2)。
iwdvpbn与iuop、iikd、kadgpf均有相同的字符,不满足条件。
iuop与iikd、kadgpf均有相同的字符,不满足条件。
iikd与kadgpf有相同的字符,不满足条件。
因此,输出为14。

四、解题思路

  1. 对于数组中的每一对字符串,检查它们是否有相同的字符。如果没有,就计算它们的长度乘积,并更新最大长度乘积。
  2. 为了检查两个字符串是否有相同的字符,可以将每个字符串转换为集合,然后检查这两个集合是否有交集。如果没有交集,那么这两个字符串就没有相同的字符。
  3. 为了避免重复检查,可以使用一个二维数组来存储已经计算过的字符串对的结果。

五、参考代码 

# -*- coding: utf-8 -*-
'''
@File    :   2023-B-计算最大乘积.py
@Time    :   2023/12/29 23:34:10
@Author  :   mgc 
@Version :   1.0
@Desc    :   None
'''# import os
# import re
# import sys
# import copy
# import math
# import queue
# import functools
# from queue import Queue
# from collections import Counter, defaultdictdef max_product(arr):# 初始化最大乘积为0max_product = 0# 遍历数组中的每一对字符串for i in range(len(arr)):for j in range(i+1, len(arr)):# 将字符串转换为集合set1 = set(arr[i])set2 = set(arr[j])# 检查两个集合是否有交集if not set1 & set2:# 计算长度乘积并更新最大乘积product = len(arr[i]) * len(arr[j])max_product = max(max_product, product)# 返回最大乘积return max_productarr = input().split(",")
result = max_product(arr)
print(result)