题解 | 求最大连续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 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 >= num1) {
                num1 = len;
            }
            i = right;
        }
    }

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

全部评论

相关推荐

07-09 15:14
南京大学 C++
点赞 评论 收藏
分享
07-09 12:12
门头沟学院 Java
5月底投简历7月初开奖收获秋招第一个offer,虽然白菜价,但至少能保底了
土木转行ing:土木博士想转图像,最后拿了 tp 提前批 sp 最低档,感觉性价比不高
TP-LINK开奖132人在聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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