0
点赞
收藏
分享

微信扫一扫

LeetCode-318. Maximum Product of Word Lengths

hwwjian 2022-08-10 阅读 94


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:

Input:

​​["abcw","baz","foo","bar","xtfn","abcdef"]​

Output: ​​

16 
Explanation:

​​The two words can be ​​​

"abcw", "xtfn"

​.


Example 2:


Input:​​

["a","ab","abc","d","cd","bcd","abcd"]

Output: ​​

4 
Explanation:

​​​​The two words can be ​​​

"ab", "cd"

​.


Example 3:


Input:​​

["a","aa","aaa","aaaa"]

Output: ​​

0 
Explanation:

​No such pair of words.


题解:

给位运算跪一下好吧orz

class Solution {
public:
int maxProduct(vector<string>& words) {
int ans = 0;
int n = words.size();
for (int i = 0; i < n; i++) {
vector<bool> visit(26, 0);
int li = words[i].size();
bool dup = false;
int maxi = 0;
for (int j = 0; j < li; j++) {
visit[words[i][j] - 97] = true;
}
for (int j = i + 1; j < n; j++) {
int lj = words[j].size();
for (int k = 0; k < lj; k++) {
if (visit[words[j][k] - 97] == true) {
dup = true;
break;
}
}
if (dup == false && lj > maxi) {
ans = max(ans, lj * li);
maxi = lj;
}
dup = false;
}
}
return ans;
}
};

 

举报

相关推荐

0 条评论