题解 | 求最大连续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")

全部评论

相关推荐

2024-12-25 09:09
四川师范大学 运营
想和你交朋友的潜伏者要冲国企:先去沃尔玛亲身感受标准化流程体系,一两年后再跳槽国内任何零售行业,可以有更大选择权吧?
点赞 评论 收藏
分享
牛客120493863号:你姐东南大学硕士在读,那就找导师或者师兄师姐打听下同门同方向前辈就业最好的是去向哪几家公司了呗(如果不想走考公选调的话),这个是最有参考性的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务