Problem: Binary Watch
class Solution {
public:
vector<string> readBinaryWatch(int num) {
vector<string> times;
int bitmask = 1<<10;
for(int i=0;i<bitmask;i++)
if(__builtin_popcount(i)==num)
{
int minutes = i % (1<<6);;
int hour = i / (1<<6);
if(minutes<60 && hour<12)
{
string s = "";
if(hour<10) s+= hour+'0';
else
{
s += hour/10 + '0';
s += hour%10+'0';
}
s+=':';
if(minutes<10)
{
s += '0';
s += minutes+'0';
}
else
{
s += minutes/10+'0';
s += minutes%10+'0';
}
times.push_back(s);
}
}
return times;
}
};
No comments:
Post a Comment