class Solution {
public:
vector<string> readBinaryWatch(int turnedOn) {
vector<string> ans;
for(int h=0;h<12;h++){ //小时
for(int m=0;m<60;m++){ //分钟
//2^6=64>59,故h<<6,这样h和m互不影响,通过|得到⼆进制位中1的个数
bitset<10> bst(h<<6|m);
if(bst.count()==turnedOn){ //bst.count()得到bst中⼆进制位1的个数
string t=to_string(h)+":";
if(m<10) t+="0";
t+=to_string(m);
ans.push_back(t);
}
}
}
return ans;
}
};
LeetCode-401. 二进制手表-easy
最新推荐文章于 2024-10-01 04:50:10 发布
该博客介绍了如何利用C++解决一个计算机科学相关的问题,即当某些二进制位被激活时,显示正确的时间。代码中通过两层循环遍历小时和分钟,使用bitset进行二进制位操作,计算二进制位中1的个数,当个数等于给定值时,将对应的时间添加到结果中。这个方法展示了位运算在解决实际问题中的应用。
摘要由CSDN通过智能技术生成