【LeetCode】318. Maximum Product of Word Lengths
来源:互联网 发布:知乎读书 编辑:程序博客网 时间:2024/04/29 12:34
Given a string array words
, find the maximum value of length(word[i]) * length(word[j])
where the two words do not share common letters. You may assume that each word will contain only lower case letters. If no such two words exist, return 0.
Example 1:
Given ["abcw", "baz", "foo", "bar", "xtfn", "abcdef"]
Return 16
The two words can be "abcw", "xtfn"
.
Example 2:
Given ["a", "ab", "abc", "d", "cd", "bcd", "abcd"]
Return 4
The two words can be "ab", "cd"
.
Example 3:
Given ["a", "aa", "aaa", "aaaa"]
Return 0
No such pair of words.
class Solution {public: int maxProduct(vector<string>& words) { int length=words.size(); int * wordsMap= new int[length]; memset(wordsMap, 0, sizeof(int)*length); for(int i=0;i<length;i++){ for(int j=0;j<words[i].size();j++){ wordsMap[i] = wordsMap[i] | (0x00000001<<(words[i].at(j)-'a')); } } int maxSum=0; for(int i=0;i<length;i++){ for(int j=i+1;j<length;j++){ if((wordsMap[i] & wordsMap[j])==0){ if(words[i].size()*words[j].size()>maxSum){ maxSum=words[i].size()*words[j].size(); } } } } return maxSum; }};
万万没想到这个代码还是挺快的
思想就是将每一个字符串换成对应的32位Int.
因为只有26个字母。所以出现的字母在32位的int中的一位标志着这个字字母有没有出现过。
最后再用一个O(n^2)的循环,比对这些int是否有相同的位,如果有就是出现了同样的字母
该逻辑用逻辑与实现
预处理是O(n*m) m为字符串长度
判断是O(n^2)
0 0
- 【leetcode】318. Maximum Product of Word Lengths
- 318. Maximum Product of Word Lengths LeetCode
- [leetcode] 318. Maximum Product of Word Lengths
- LeetCode: 318. Maximum Product of Word Lengths
- LeetCode 318. Maximum Product of Word Lengths
- leetcode 318. Maximum Product of Word Lengths
- [LeetCode]318. Maximum Product of Word Lengths
- [LeetCode]318. Maximum Product of Word Lengths
- LeetCode 318. Maximum Product of Word Lengths
- LeetCode *** 318. Maximum Product of Word Lengths
- [Leetcode] 318. Maximum Product of Word Lengths
- leetcode 318. Maximum Product of Word Lengths
- [leetcode]318. Maximum Product of Word Lengths
- 【LeetCode】318. Maximum Product of Word Lengths
- [LEETCODE]318. Maximum Product of Word Lengths
- 【leetcode】318. Maximum Product of Word Lengths
- [leetcode] 318. Maximum Product of Word Lengths
- leetcode 318. Maximum Product of Word Lengths
- android FlatBuffers剖析
- hdu3655(2010成都Online)单源最短路
- 使用Hibernate sessionFactory工具类来对数据的增删改查
- icon font
- BST inorder getNext() of current node
- 【LeetCode】318. Maximum Product of Word Lengths
- codeforces #327 (Div. 2) ->B. Rebranding(字符串 模拟)
- 编程之美——记录我的编程经历和其中辛酸
- android 毕业设计项目开发
- 游戏测试-----------------第3章
- This application's application-identifier entitlement does not match that of the installed applicati
- 集群主机管理和命名
- 学习笔记-斯坦福iOS7-第六课:控制器多态性,导航控制器,选项卡控制器
- 制作带三角指向的overlay/popup