8/14 每日一題(二進制若相鄰相同返回錯)
Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.
Example 1:
Input: n = 5 Output: true Explanation: The binary representation of 5 is: 101
Example 2:
Input: n = 7 Output: false Explanation: The binary representation of 7 is: 111.
Example 3:
Input: n = 11 Output: false Explanation: The binary representation of 11 is: 1011.
Constraints:
1 <= n <= 231 - 1
class Solution:
def hasAlternatingBits(self, n: int) -> bool:
n_bin=bin(n)
# num=2
# while num <len(n_bin)-1:
# if n_bin[num]==n_bin[num+1]:
# return False
# num+=1
# return True #注意到使用while速度不如預期
for i in range(2,len(n_bin)-1):
if n_bin[i] == n_bin[i+1]:
return False
return True
標籤: leetcode

0 個意見:
張貼留言
訂閱 張貼留言 [Atom]
<< 首頁