面试题 05.03. 翻转数位

发布时间 2023-04-27 20:32:20作者: 猥琐丑八怪

 分析:

这道题看的解析过的,但是还是有点不懂

这道题大概思路懂了,就是通过三个变量,遇到1或者0刷新值,然后每次取三个变量最大值

但是看解析代码有一行没看懂

那个&,好像是位运算的符号,还有那个代码里面的1>>i没看懂

代码:

 1 class Solution(object):
 2     def reverseBits(self, num):
 3         """
 4         :type num: int
 5         :rtype: int
 6         """
 7         cur = 0
 8         insert = 0
 9         res = 1
10         for i in range(32):
11             if num & (1<<i):
12                cur += 1
13                insert +=1
14             else:
15                 insert = cur + 1
16                 cur = 0
17             res = max(res,insert)
18         return res