tiles (буквы могут повторяться), каждая фишка используется не больше одного раза. Есть список слов words; каждое слово списка можно выложить не больше одного раза.
Стоимость буквы задаёт массив points из 26 чисел: points[0] — стоимость a, points[1] — b, и так далее до z. Стоимость слова — сумма стоимостей его букв.
Выберите набор слов, которые все вместе можно выложить из имеющихся фишек, с наибольшей суммарной стоимостью, и верните эту стоимость. Использовать все фишки не обязательно; пустой набор стоит 0.words=['bee', 'tea', 'eat', 'beet'], tiles=['b', 'e', 'e', 't', 'a'], points=[1, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0] → 7
Очки: a=1, b=3, e=1, t=2. «beet» даёт 3+1+1+2 = 7 и забирает все фишки, кроме «a». «tea» и «eat» вместе не собрать — фишка «t» одна, а по отдельности каждое даёт лишь 4.
words=['ab', 'ab'], tiles=['a', 'b', 'a', 'b'], points=[2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] → 14
Это два разных слова списка, фишек хватает на оба: 2 · (2 + 5) = 14.
words=['zz'], tiles=['z'], points=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10] → 0
Для «zz» нужны две фишки «z», а есть одна. Ни одного слова не выложить — ответ 0.
tiles — одна букваwords[i] и tiles[i] состоят из строчных латинских буквwords=['bee', 'tea', 'eat', 'beet'], tiles=['b', 'e', 'e', 't', 'a'], points=[1, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0]
7
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 54 теста на сервере, включая скрытые.