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

力扣-最大单词长度乘积

题目:

给你一个字符串数组 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.xdnf.cn/news/16752.html

相关文章:

  • macOS卸载.net core 8.0
  • PL-0功能拓展及基于VSCode的IDE配置
  • uniapp无线(WIFI)运行调试APP(真机)
  • 脚本统计MongoDB集合表数据量
  • SSL 剥离漏洞
  • Java 日期时间处理:分类、用途与性能分析
  • 在Centos7中安装gitlab
  • 常见小目标检测算法优化
  • 机器学习:开启智能时代的钥匙
  • TypeScript SDK 升级:通过 Upload Relay 赋能更多应用
  • 第十四天:C++内存管理
  • 汽车供应链PPAP自动化审核指南:如何用AI实现规则精准匹配与文件智能校验
  • cesium FBO(四)自定义相机渲染到Canvas(离屏渲染)
  • 数据处理四件套:NumPy/Pandas/Matplotlib/Seaborn速通指南
  • ACM SIGCOMM 2024论文精选-01:5G【Prism5G】
  • Docker设置容器时间
  • 深度学习(鱼书)day08--误差反向传播(后三节)
  • PyTorch基础——张量计算
  • datax-cloud 智数通修订版(去除mapstruct)本地部署-记录
  • C语言-字符串(定义)、字符串函数(strlen、strcat、strcpy、strcmp、strlwr、strupr)
  • [CISCN 2022 初赛]online_crt
  • 【支持Ubuntu22】Ambari3.0.0+Bigtop3.2.0——Step7—Mariadb初始化
  • 【兆易创新】单片机GD32F103C8T6系列入门资料
  • xcode swift项目运行、连接真机运行报错,引入文件夹失败
  • 伞状Meta分析重构癌症幸存者照护指南:从矛盾证据到精准决策
  • 法国彩虹重磅发布EmVue:解锁能源监控新方式
  • 电商一键上货软件推荐:实在Agent、面兜兜、京老虎、妙手、青虎
  • 如何快速给PDF加书签--保姆级教程
  • Elasticsearch IK 中文分词器指南:从安装、配置到自定义词典
  • Java 22 新特性解析与代码示例