Ctrl K

Слово из букв автономера

Лёгкая
Дан автомобильный номер plate — строка из цифр, латинских букв любого регистра и пробелов — и массив слов words. Слово *покрывает* номер, если в нём есть все буквы номера с учётом количества: цифры и пробелы не учитываются, регистр букв не важен, а если буква встречается в номере несколько раз, в слове она должна встретиться не меньше раз. Например, номер "kK 77a" покрывают слова "kayak" и "knack", а "kale" — нет. Верните самое короткое слово из words, которое покрывает номер. Если таких слов несколько, верните то, что стоит в массиве раньше. Гарантируется, что хотя бы одно подходящее слово есть.
Пример 1
plate='7KA 2k9', words=['kayak', 'kick', 'karaoke', 'snack'] → 'kayak'

На номере буквы k, a и ещё одна k. «kick» без a, «snack» с одной k, а «kayak» и «karaoke» подходят; «kayak» короче.

Пример 2
plate='B 404', words=['crab', 'blue', 'bird', 'rob'] → 'rob'

Нужна только буква b. Все слова её содержат, самое короткое — «rob».

Пример 3
plate='Ox 12', words=['axon', 'oxen', 'box', 'fox'] → 'box'

Подходят все четыре слова, кратчайшие — «box» и «fox» длины 3; выигрывает «box», потому что стоит раньше.

Ограничения
  • 1 ≤ plate.length ≤ 20
  • plate состоит из цифр, латинских букв и пробелов
  • 1 ≤ words.length ≤ 1000
  • 1 ≤ words[i].length ≤ 15
  • words[i] состоит из строчных латинских букв
  • хотя бы одно слово покрывает номер
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСлова одного ряда ЛёгкаяГде поужинать вдвоём ЛёгкаяФразы со словами-синонимами ЛёгкаяРазличные сигналы азбуки Морзе ЛёгкаяСколько настоящих ящиков Лёгкая
загружаем Python…
Вход
plate='7KA 2k9', words=['kayak', 'kick', 'karaoke', 'snack']
Ожидается
'kayak'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 66 тестов на сервере, включая скрытые.