题解 | 求最大连续bit数

#include <bitset>
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    bitset<32> bs(n);
    string n_str = bs.to_string();

    // 双指针,贪心
    int left = 0;
    int right = 0;
    int max_num1 = 0;
    for (int i = 0; i < n_str.size(); i ++) {
        if (n_str[i] == '0') {
            continue;
        } else {
            left = i;
            right = i;
            while (n_str[right] != '0' && right < n_str.size()) {
                right ++;
            }
            int len = right - left;
            if (len >= max_num1) {
                max_num1 = len;
            }
            i = right;
        }
    }

    cout << max_num1 << endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

10-02 19:29
已编辑
浙江科技大学 运营
点赞 评论 收藏
分享
赛博小保安:你这简历没啥大问题的,经历技能也足够了,问题应该就是出在出身了,学院本就是这样,HR忙着跟92的勾搭呢,哪有心思看我们这些双非😿😭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务