люди были убиты, и вы проводите расследование.
Вам удалось сузить круг подозреваемых до нескольких. Вы знаете каждого, кого подозреваемые видели в день убийства.
Задача:
Дан словарь со всеми именами подозреваемых и всех, кого они видели в тот день, который может выглядеть так:
{
'Джеймс': ['Джейкоб', 'Билл', 'Лукас'],
"Джонни": ["Дэвид", "Кайл", "Лукас"],
"Питер": ["Люси", "Кайл"]
}
а также список имен погибших:
['Лукас', 'Билл']
Необходимо вернуть имя одного убийцы, в нашем случае "Джеймс", потому что он единственный человек, который видел и Лукас, и Билл
Если не ошибаюсь эта задача очень популярная,помню видел решение этой задачи год назад,но сейчас я не могу найти решение данной задачи,может знает кто решение ?
const [killer] = Object.entries(data).find(([_, contacts]) => victims.every(victim => contacts.includes(victim)))
я решал эту задачу в codewars
алгоритм поиск убийц на отличном уровне
написал бы ещё что решил, что думаешь по решение, формально решение звучит так, найти человека который встречал всех погибших function solve(suspens, died) { for (suspen of Object.keys(suspens)) if (died.every(victim => ~(suspens[suspen].indexOf(victim)))) return suspen }
откуда ты знаешь точное имя функции с codewars
function killer(suspectInfo, dead) { return Object.entries(suspectInfo) .filter( seen => dead.every( name => seen[1].includes(name)) )[0][0] } копипаста с моего решения
забуленный = опущенный ? хд
Спасибо тебе ! Можешь объяснить зачем ты передаешь в метод find это _ ??
эу, брат, ты как разговариваешь?
_ не юзается, можешь пустые скобы заменить () нижнее подчеркивание
чтобы пропустить не используемый аргумент. таким образом показывается, что он не будет использоваться. общепринятое название
_ это чтобы не выделять памяти под переменную её опускают, чтобы иметь доступ только ко второму аргументу коллбека
куда не выделять память? э
душного включил
Обсуждают сегодня