Сложность: easy
Бинарные часы имеют 4 светодиода сверху для представления часов (0-11) и 6 светодиодов снизу для представления минут (0-59). Каждый светодиод представляет ноль или единицу, при этом младший разряд находится справа.
Пример:
Input: turnedOn = 1
Output: ["0:01","0:02","0:04","0:08","0:16","0:32","1:00","2:00","4:00","8:00"]
👨💻 Алгоритм:
1⃣Генерация всех возможных комбинаций
Переберите все возможные значения для часов и минут. Используйте битовые операции для подсчета количества единиц в бинарном представлении числа.
2⃣Проверка количества горящих светодиодов
Для каждой комбинации проверьте, соответствует ли сумма единиц в бинарном представлении часов и минут заданному количеству горящих светодиодов.
3⃣Форматирование результата
Если комбинация часов и минут соответствует условию, отформатируйте их в виде строки "часы:минуты" и добавьте в список результатов.
😎 Решение:
class Solution {
readBinaryWatch(turnedOn) {
const results = [];
for (let h = 0; h < 12; h++) {
for (let m = 0; m < 60; m++) {
if (h.toString(2).split('1').length - 1 + m.toString(2).split('1').length - 1 === turnedOn) {
results.push(`${h}:${m.toString().padStart(2, '0')}`);
}
}
}
return results;
}
}Ставь 👍 и забирай 📚 Базу знаний
