欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

「 每日一练,快乐水题 」693. 交替位二进制数

发布时间:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 「 每日一练,快乐水题 」693. 交替位二进制数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

    • 🔴力扣原题:
    • 🟠题目简述:
    • 🟡解题思路:
    • 🟢C++代码:
    • 🔵结果展示:


🔴力扣原题:

力扣链接:693. 交替位二进制数

🟠题目简述:

给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。

🟡解题思路:

1.模拟大法;
2.算出n的二进制表示;
3.判断奇数位与偶数位是否一致;
4.0、1位需要不一致;
5.处理只有1位二进制的情况;
6.over;

🟢C++代码:

class Solution { public:bool hasAlternatingBits(int n) {bool bRet = true;vector<int> binaryVec;while(n > 0){binaryVec.push_back(n%2);n /= 2;}int num = binaryVec.size();// for(auto i : binaryVec)// {// cout << i << endl;// }if(num >=2){if((binaryVec[0]==binaryVec[1])){return false;}for(int i = 0; 2*i< num; i++){ //cout << i << endl;if((binaryVec[0] != binaryVec[2*i])){bRet = false;break;}}for(int i = 0; (2*i+1)< num; i++){ //cout << i << endl;if(binaryVec[1] != binaryVec[2*i +1]){bRet = false;break;}}}return bRet;} };

🔵结果展示:

总结

以上是生活随笔为你收集整理的「 每日一练,快乐水题 」693. 交替位二进制数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。