乘积最大值OD-(Python)

该问题要求计算一个由小写字母组成的字符串数组中,两个没有相同字符的字符串长度的乘积最大值。给定的Python代码首先对数组按长度排序,然后检查每对字符串以找出符合条件的对,将它们的长度相乘并存储在列表中,最后返回列表中的最大值。示例展示了如何处理一个特定输入并找到最大乘积14。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

乘积最大值

题目描述

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

输入描述

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

输出描述

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

示例一

输入

iwdvpbn,hk,iuop,iikd,kadgpf

输出

14

说明

数组中有5个元组 第一个和第二个元素没有相同字符
满足条件 输出7 * 2 = 14

参考解题

# !E:\pythonScript\venv python3
# -*- coding: utf-8 -*-
"""
Date: 2023/4/6
Author: kang
ep:
iwdvpbn,hk,iuop,iikd,kadgpf
"""


lis = input().split(",")
lis.sort(key=len)
l = len(lis)
newl = []
for i in range(l):
    for j in range(i + 1, l):
        for k in range(len(lis[j])):
            if lis[j][k] in lis[i]:
                break
            else:
                if k == len(lis[j])-1:
                    # newl.append([lis[i], lis[j]])
                    newl.append(len(lis[i]) * len(lis[j]))
print(max(newl))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值