3013. Наибольшее произведение длины двух слов

Medium 2 решили
Дан массив строк words. Выберите два разных элемента массива — слова на позициях i и j (i ≠ j; это два слота в списке, даже если тексты совпадают). Пара допустима, только если у этих слов нет ни одной общей буквы (регистр не важен — все буквы строчные; повтор буквы внутри одного слова не мешает). Среди всех допустимых пар найдите максимум произведения длин len(words[i]) * len(words[j]). Если ни одной такой пары нет (или в массиве меньше двух слов) — верните 0.

Примеры:

Вход: ["abcw", "baz", "foo", "bar", "xtfn", "abcdef"]
Выход: 16
Объяснение: Берём два разных индекса, например words[0]="abcw" и words[4]="xtfn": общих букв нет, длины 4 и 4, произведение 16 — это максимум в примере.
Вход: ["a", "ab", "abc", "d", "cd", "bcd", "abcd"]
Выход: 4
Объяснение: Пара "a" и "abcd" недопустима — общая буква «a». Допустимы, например, "ab" и "cd" (разные индексы, буквы не пересекаются): 2·2=4.
Вход: ["a", "aa", "aaa", "aaaa"]
Выход: 0
Объяснение: Любые два разных индекса дают слова только из «a» — всегда есть общая буква → 0.

Ограничения:

1 <= words.length <= 1000 1 <= words[i].length <= 1000 words[i] состоит только из строчных английских букв

Теги:

Строки Битовые операции

Комментарии (0)

Зарегистрируйтесь или войдите, чтобы оставить комментарий

Пока нет комментариев. Будьте первым!