15 Jun 2024C++ / Python / TypeScriptEasy

Binary Watch

Collected C++, Python, TypeScript solutions for binary watch. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Binary Watch. the solution files are available below.

solution files

  • C++ binary-watch/synced-solution.cpp
  • Python binary-watch/synced-solution.py
  • TypeScript binary-watch/synced-solution.ts

Solution files

Pythonbinary-watch/synced-solution.py
def readBinaryWatch(num):
    result = []

    for h in range(class="syntax-number">12):
        for m in range(class="syntax-number">60):
            if bin(h).count(class="syntax-string">'class="syntax-number">1') + bin(m).count(class="syntax-string">'class="syntax-number">1') == num:
                result.append(fclass="syntax-string">"{h}:{m:02d}")

    return result
C++binary-watch/synced-solution.cpp
class Solution {
public:
    vector<string> readBinaryWatch(int num) {
        vector<string> result;

        for (int h = class="syntax-number">0; h < class="syntax-number">12; h++) {
            for (int m = class="syntax-number">0; m < class="syntax-number">60; m++) {
                if (__builtin_popcount(h) + __builtin_popcount(m) == num) {
                    char time[class="syntax-number">6];
                    sprintf(time, class="syntax-string">"%d:%02d", h, m);
                    result.push_back(string(time));
                }
            }
        }

        return result;
    }
};
TypeScriptbinary-watch/synced-solution.ts
function readBinaryWatch(num: number): string[] {
    const result: string[] = [];

    for (let h = class="syntax-number">0; h < class="syntax-number">12; h++) {
        for (let m = class="syntax-number">0; m < class="syntax-number">60; m++) {
            const bitCount = (h.toString(class="syntax-number">2).match(/class="syntax-number">1/g) || []).length +
                           (m.toString(class="syntax-number">2).match(/class="syntax-number">1/g) || []).length;
            if (bitCount === num) {
                result.push(`${h}:${String(m).padStart(class="syntax-number">2, class="syntax-string">'class="syntax-number">0')}`);
            }
        }
    }

    return result;
}