LCR005-最大单词长度乘积

求解代码

java 复制代码
    public int maxProduct(String[] words) {
        int n = words.length;
        int[] masks = new int[n];
        int[] lens = new int[n]; 
        for (int i = 0; i < n; i++) {
            lens[i] = words[i].length(); 
            for (char c : words[i].toCharArray()) {
                masks[i] |= 1 << (c - 'a');
            }
        }
        int max = 0;
        for (int i = 0; i < n; i++) {
            for (int j = i + 1; j < n; j++) {
                if ((masks[i] & masks[j]) == 0) {
                    max = Math.max(max, lens[i] * lens[j]); 
                }
            }
        }
        return max;
    }

小贴士

遍历每个字符串,用一个 int 整数(掩码)表示该字符串包含的字符。

解释一下:

如果二进制第c-'a'位为 1,则表示包含字符c

比如包含a则第 0 位为 1,包含b则第 1 位为 1。

相关推荐
zzzzls~21 小时前
Python 工程化: 用 Copier 打造“自我进化“的项目脚手架
开发语言·python·copier
言慢行善21 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
韶博雅21 小时前
emcc24ai
开发语言·数据库·python
专吃海绵宝宝菠萝屋的派大星21 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
yongui4783421 小时前
C# 与三菱PLC通讯解决方案
开发语言·c#
2501_9333295521 小时前
技术架构深度解析:Infoseek舆情监测系统的全链路设计与GEO时代的技术实践
开发语言·人工智能·分布式·架构
大数据新鸟21 小时前
操作系统之虚拟内存
java·服务器·网络
Tong Z21 小时前
常见的限流算法和实现原理
java·开发语言
凭君语未可21 小时前
Java 中的实现类是什么
java·开发语言
He少年21 小时前
【基础知识、Skill、Rules和MCP案例介绍】
java·前端·python