Ctrl K

Объединить флаги соседей

Лёгкая
Каждое число в списке flags — набор включённых настроек, закодированный битами: если в двоичной записи стоит единица, соответствующая настройка включена. Для каждой пары соседних элементов нужно получить объединённый набор — настройку считаем включённой, если она включена хотя бы у одного из двух соседей. Это побитовое ИЛИ (|). Верните список длины len(flags) - 1, где на позиции i стоит flags[i] | flags[i + 1].
Пример 1
flags=[2, 5, 8] → [7, 13]

2 | 5 = 0b010 | 0b101 = 0b111 = 7, а 5 | 8 = 0b0101 | 0b1000 = 0b1101 = 13.

Пример 2
flags=[6, 6] → [6]

Одна пара соседей, 6 | 6 = 6.

Пример 3
flags=[0, 9, 0, 1] → [9, 9, 1]

0 | 9 = 9, 9 | 0 = 9, 0 | 1 = 1.

Ограничения
  • 2 ≤ len(flags) ≤ 100
  • 0 ≤ flags[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧисло без пары ЛёгкаяПотерянный билет ЛёгкаяДвойная бирка и пропавшая ЛёгкаяЗеркало и негатив ЛёгкаяКратно пяти на каждом шаге Лёгкая
загружаем Python…
Вход
flags=[2, 5, 8]
Ожидается
[7, 13]

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