leetCode 318 最大单词长度乘积(位掩码,位运算,二进制)
题目链接:点击查看
题目描述:
输入:["abcw","baz","foo","bar","xtfn","abcdef"]
输出:16
输入:["a","ab","abc","d","cd","bcd","abcd"]
输出:4
题目分析:
int maxProduct(vector<string>&words)
{unordered_map<int,int>hash;int ans=0;for(const string &word:words){int mask=0,size=word.size();for(const char &c:word)//用 c来接收word里面每一个字符 {mask|=1<<(c-'a');//创建位掩码:遍历单词的每个字母,计算该字母在掩码中的位置 n = (int)ch - (int)'a',然后创建一个第 n 位为 1 的掩码 n_th_bit = 1 << n //然后通过或操作将该码合并到位掩码中 bitmask |= n_th_bit}hash[mask]=max(hash[mask],size);for(const auto&[h_mask,h_len]:hash)//计算两个不同字符串的最大长度的乘积 {if(!(mask&h_mask))//若为0则含有重复字符 {ans=max(ans,size*h_len); } } }return ans;
}
leetCode 318 最大单词长度乘积(位掩码,位运算,二进制)相关推荐
- LeetCode 318. 最大单词长度乘积(位运算)
1. 题目 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母.你可以认为每个单词只包含小写字母.如果不存 ...
- leetcode 318 最大单词长度乘积
https://leetcode-cn.com/problems/maximum-product-of-word-lengths/ 题目 给定一个字符串数组wordswordswords,找到leng ...
- LeetCode 391. 完美矩形(扫描线) / 318. 最大单词长度乘积 / 563. 二叉树的坡度
391. 完美矩形 2021.11.16 每日一题 题目描述 给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形.这 ...
- 【LeetCode笔记 - 每日一题】318. 最大单词长度乘积(Java、位运算)
文章目录 题目描述 思路 && 代码 题目描述 挺不错!有bitmap的感觉了. 思路 && 代码 思路好想:两两对比,无公共判断,维护 res 那么,如何进行公共判断 ...
- leetcode 318. Maximum Product of Word Lengths | 318. 最大单词长度乘积
题目 https://leetcode.com/problems/maximum-product-of-word-lengths/ 题解 中规中矩的题目,中规中矩的思路,不像是一个 medium 题. ...
- 318. 最大单词长度乘积 golang
question 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母.你可以认为每个单词只包含小写字母.如 ...
- C++题解-Leecode 318. 最大单词长度乘积——Leecode每日一题系列
今天是坚持每日一题打卡的第二十二天 题目链接:https://leetcode-cn.com/problems/maximum-product-of-word-lengths/ 题解汇总:https: ...
- JAVA(2021-11-17)leetcode每日一题---- 最大单词长度乘积
这个题的难点并不在于找的过程,因为没有什么可以记录的,就是要挨个比,n平方的复杂度.但是这个题的优化空间在于比较两个单词是否含有公共字母. 一看到是否含有重复的,是否含有重复字符,我们就应该想到是不是 ...
- python找最长的单词_318. 最长单词长度乘积(Python)
题目 难度:★★★☆☆ 类型:数组,字符串 方法:无 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母. ...
- 剑指Offer Ⅱ 005.单词长度的最大乘积 (力扣剑指Offer专项突击版——整数_5)
题目 给定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值.假设字符串中只包含英语的小写字母.如果没有不包含相同字符的一 ...
最新文章
- PyTorch关键算法疑似侵权,Facebook被起诉
- Linux下的iwpriv(iwlist、iwconfig)的简单应用
- 避免强光的一些注意点
- c# winform 应用编程代码总结 5
- rabbitmq可靠性投递_阿里Java研发二面:了解RabbitMQ?说说RabbitMQ可靠性投递
- 保利管道微服务1_.netcore 3.1高性能微服务架构:webapi规范
- 卷积神经网络_mnist
- 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理
- 6种展示代码的绝佳方式
- IOS 10 适配系列 _3_ Xcode 8 GM seed
- 中国电信翼支付网关接口接入
- Redis 6.0新特性——ACLs
- 计算机毕业论文致谢信范文,论文致谢信10篇
- 机器人可操作度 matlab,双臂机器人运动学与可操作性及其优化的研究
- MATLAB计算英文符号信源熵,基于matlab的英文文本信息量的统计-正确.doc
- genicam 相机java,机器视觉必知-GenICam相机通用接口标准
- php检测wifi,WFilter插件 - 随身wifi和私接路由检测
- java中将秒转化为几小时几分钟几秒的方法
- 如何写一个自动抢微信红包的程序
- 魔兽世界70人最多服务器,数据告诉你,《魔兽世界》TBC怀旧服有多受欢迎