首页 > 试题广场 >

字符串长度最大乘积

[编程题]字符串长度最大乘积
  • 热度指数:7047 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
已知一个字符串数组words,要求寻找其中两个没有重复字符的字符串,使得这两个字符串的长度乘积最大,输出这个最大的乘积。如:
words=["abcd","wxyh","defgh"], 其中不包含重复字符的两个字符串是"abcd"和"wxyh",则输出16
words=["a","aa","aaa","aaaa"], 找不到满足要求的两个字符串,则输出0

数据范围:输入的字符串长度满足 ,保证只包含小写字母

输入描述:
Input:

["a","ab","abc","cd","bcd","abcd"]


输出描述:
Output:

4
示例1

输入

["a","ab","abc","cd","bcd","abcd"]

输出

4

备注:
Input中,不包含相同字符的有三对:
"ab"和"cd"
"a"和"cd"
"a"和"bcd"
所以字符串长度乘积的最大值是4
头像 牛客题解官
发表于 2020-06-04 15:09:24
精华题解 题目难度:二星 考察点:字符串、模拟 方法:模拟 1.分析: 根据题意,我们可以对这n个字符串进行枚举,即判断字符串两两是否有重复的字符,如果没有就计算两个字符串的长度乘积,将n^2个字符串的长度乘积求出来,然后比较输出最大值即可。有几个小坑点: (1). 处理输入问题,因为 展开全文
头像 幸运的六边形战士在改简历
发表于 2022-08-05 22:40:30
const readline = require('readline'); const rl = readline.createInterface({     input: process.stdin,     output: process.stdout } 展开全文
头像 laglangyue
发表于 2020-05-29 00:28:04
双循环搜索+排序优化+Set集合优化处理输入,去除"[" "]" "" "三种字符,再split得到字符串数组 import java.util.*; public class Main { public static boolean containSet(Set<Character 展开全文
头像 louis_ncu
发表于 2020-04-24 21:36:58
暴力解法时间复杂度:O(n^2)空间复杂度:O(n)测试用例有问题,AC=75%??? are you sure? #include <iostream> #include <vector> #include <string> using namespace 展开全文
头像 牛客534030675号
发表于 2023-04-17 16:13:52
import sys def nokia(s1, s2): s1=eval(s1) s2=eval(s2) # print(s1, "----------", s2) l1 = list(s1) l2 = list(s2) if len(l1 + 展开全文
头像 lentolove
发表于 2019-08-05 17:11:05
好像只能暴力求解了,数据比较小,用时22ms import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { /** 展开全文
头像 小沐_
发表于 2022-04-27 12:36:49
解题思路 先提取输入的字符串数组 用类似冒泡方式遍历并判断两个字符串是否有重复 满足要求就计算乘积并保留最大乘积 法一 import java.util.*; public class Main { public static void main(String[] args) { 展开全文