华为机试:无重复字符的元素长度乘积的最大值

【编程题目 | 100分】无重复字符的元素长度乘积的最大值 [ 100 / 简单 ]

无重复字符的元素长度乘积的最大值

题目描述:
  • 给定一个元素类型为小写字符串的数组,请计算两个没有相同字符的元素长度乘积的最大值。
  • 如果没有符合条件的两个元素返回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均有相同的字符,不满足条件。
参考代码:

Java代码实现:

import java.util.Scanner;

public class LongestSubstring {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] words = in.nextLine().split(",");
        int maxLength = 0;
        for (int i = 0; i < words.length - 1; i++) {
            for (int j = i + 1; j < words.length; j++) {
                char[] word1 = words[i].toCharArray();
                char[] word2 = words[j].toCharArray();
                boolean flag = true;
                for (int m = 0; m < word1.length; m++) {
                    for (int n = 0; n < word2.length; n++) {
                        if (word1[m] == word2[n]) {
                            flag = false;
                            break;
                        }
                    }
                }
                if (flag) {  // 两个字符串不相等
                    int Length = word1.length * word2.length;
                    maxLength = Math.max(maxLength, Length);
                }
            }
        }
        System.out.println(maxLength);
    }
}
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值