一、题目描述
求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1。
二、输入描述
输入一个int类型数字。
三、输出描述
输出转成二进制之后连续1的个数。
四、测试用例
测试用例1
1、输入
3
2、输出
2
3、说明
3 的二进制为 11,连续 1 的最大个数为 2。
测试用例2
1、输入
156
2、输出
3
3、说明
156 的二进制为 10011100,其中最长连续 1 的序列为 111,长度 3。
五、解题思路
- 首先通过输入获取一个 int 类型的数字;
- 使用 Integer.toBinaryString(num) 将该数字转换为二进制字符串;
- 使用 split(“0”) 方法将二进制字符串按照 0 进行分割,得到连续的 1 组成的字符串数
博客主要介绍了如何解决华为在线测评(OD)中的一道题目,即求一个int类型数字的二进制表示中连续1的最大个数。解题思路包括将数字转换为二进制字符串,通过split方法分割连续的1,以及使用位运算优化算法。提供了Java代码实现,并展示了运行效果。
订阅专栏 解锁全文
567

被折叠的 条评论
为什么被折叠?



