leetcode@ [318] Maximum Product of Word Lengths (Bit Manipulations)
2016-02-20 05:17
399 查看
https://leetcode.com/problems/maximum-product-of-word-lengths/
Given a string array
Example 1:
Given
Return
The two words can be
Example 2:
Given
Return
The two words can be
Example 3:
Given
Return
No such pair of words.
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: void strToBits(vector<int>& bits, vector<string>& words) { for(int i=0; i<words.size(); ++i) { int tmp = 0; for(int j=0; j<words[i].size(); ++j) { int offset = words[i][j] - 'a'; tmp = (tmp | (1 << offset)); } bits[i] = tmp; } } int maxProduct(vector<string>& words) { int n = words.size(); if(n < 2) return 0; vector<int> bits(n, 0); strToBits(bits, words); int res = 0; for(int i=0; i<n; ++i) { for(int j=i+1; j<n; ++j) { int len1 = words[i].length(), len2 = words[j].length(); if((bits[i] & bits[j]) == 0) { res = max(res, len1 * len2); } } } return res; } };
相关文章推荐
- Hibernate映射一对一关联关系
- 【POJ】[2031]Building a Space Station
- 75. Sort Colors
- Android之史上最全最简单最有用的第三方开源库收集整理
- [leetcode] 322. Coin Change 解题报告
- leetcode小记3——array,string(238,242)
- Solve error: Cannot open include file: 'X11/Xlocale.h': No such file or directory
- 【POJ】[1287]Networking
- 【杭电】[1875]畅通工程再续
- python学习第十四课--CSS
- python学习第十四课-- JQUERY
- 90. Subsets II
- win10装机后优化
- 【POJ 2886】Who Gets the Most Candies?
- 完美解决EditText和ScrollView的滚动冲突(下)
- 夺命雷公狗---微信开发27----客服消息接口基础和推送图文消息
- 夺命雷公狗---微信开发26----客服消息接口基础和推送视频
- 使用 dbms_xplan.display 按照 plan_hash_value 查执行计划的方法
- 【POJ】[1251]Jungle Roads
- 【UVA 1451】Average