首页 > 学院 > 开发设计 > 正文

318. Maximum Product of Word Lengths

2019-11-06 07:32:51
字体:
来源:转载
供稿:网友

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.

public class Solution { public int maxPRoduct(String[] words) { if (words == null || words.length == 0) return 0; int[] values = new int[words.length]; for (int i = 0; i < words.length; i++){ String word = words[i]; for (int j = 0; j < word.length(); j++) { values[i] |= 1 << word.charAt(j) - 'a'; } } int res = 0; for (int i = 0; i < words.length; i++) { for (int j = i+1; j < words.length; j++) { if((values[i] & values[j]) == 0 && res < words[i].length() * words[j].length()) res = words[i].length() * words[j].length(); } } return res; }}
上一篇:17.03.04 数组

下一篇:谁考了第k名

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表