当前位置: 首页 > news >正文

力扣-最大单词长度乘积

题目:

给你一个字符串数组 words,找出并返回 length (words [i]) * length (words [j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回 0。

分析:

  • 先进行边界判断(数组为 null、长度不足 2、去重后元素不足 2 个的情况)
  • 用 HashSet 对单词去重,避免重复计算
  • 转为 ArrayList 便于通过索引遍历所有单词对
  • 通过 isCommon 方法判断两个单词是否有公共字母(遍历字符 + indexOf 检查)
  • 计算符合条件的单词对长度乘积,跟踪最大值
package 字符串数组;import java.util.*;public class Demo02 {public static void main(String[] args) {String[] strs = {"abc", "ab", "abcde", "abcd", "sx","abcdef"};System.out.println("长度最大值:"+maxStringLength(strs));}public static int maxStringLength(String[] strs) {if (strs == null) {System.out.println("数组为null");return 0;}if (strs.length < 2) {System.out.println("数组长度不足2,无法判断");return 0;}Set<String> set = new HashSet<>();for (int i = 0; i < strs.length; i++) {set.add(strs[i]);}if (set.size() < 2) {System.out.println("数组中元素都相同,去重后为一个元素");return 0;}int maxLen = 0;// 最长长度List<String> list = new ArrayList<>(set);for (int i = 0; i < list.size(); i++){String str1 = list.get(i);for (int j = i + 1; j < list.size(); j++){String str2 = list.get(j);if (!isCommon(str1, str2)){int len = Math.max(maxLen, str1.length()*str2.length());maxLen =len;}}}return maxLen;}public static Boolean isCommon(String str1, String str2){for (Character s : str1.toCharArray()){if (str2.indexOf(s) != -1){// str2.indexOf如果查到,返回当前下标。如果没有查到,则返回-1return true;}}// 没有查到相同return false;}
}

运行结果:

http://www.lryc.cn/news/606712.html

相关文章:

  • 鸿蒙智能居家养老系统构思(续二)—— 适老化烹饪中心详细构思
  • C#实现左侧折叠导航菜单
  • 思途JSP学习 0801
  • 退出python的base环境
  • 【常见分布及其特征(8)】连续型随机变量-正态分布*
  • JAVA结合AI
  • 高速公路桥梁安全监测系统解决方案
  • k8s云原生rook-ceph pvc快照与恢复(下)
  • 如何保护 Redis 实例的安全?
  • C++对象访问有访问权限是不是在ide里有效
  • 解决MySQL不能编译存储过程的问题
  • Rust → WebAssembly 的性能剖析全指南
  • (一)React +Ts(vite创建项目)
  • Activity之间互相发送数据
  • django的数据库原生操作sql
  • 注解退散!纯XML打造MyBatis持久层的终极形态
  • 第11届蓝桥杯Python青少组_国赛_高级组_2020年10月真题
  • 人员定位卡人脸智能充电发卡机
  • 赛博算命之八字测算事业运势的Java实现(四柱、五行、十神、流年、格局详细测算)
  • Python match-case 模式匹配详解
  • Unity优化技巧:自动隐藏视野外的3D模型
  • Python爬虫实战:研究pycares技术构建DNS解析系统
  • 玻尔兹曼分布与玻尔兹曼探索
  • 从比划沟通到指令同步:声网让跨国游戏升级
  • 什么是爬虫协议?
  • Unity相机控制
  • Sklearn 机器学习 文本数据 TF-IDF实现文本向量化
  • 噪声对比估计(NCE):原理、演进与跨领域应用
  • git SSL certificate problem: self-signed certificate in certificate chain 解决办法
  • ZED 2/2i 相机安装与调试完整指南 | Ubuntu 20.04 + CUDA 11.8