2023年8月14日 星期一

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





標籤:

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁