2018年6月7日 星期四

[LeetCode] 693. Binary Number with Alternating Bits

轉自LeetCode

Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.
Example 1:
Input: 5
Output: True
Explanation:
The binary representation of 5 is: 101
Example 2:
Input: 7
Output: False
Explanation:
The binary representation of 7 is: 111.
Example 3:
Input: 11
Output: False
Explanation:
The binary representation of 11 is: 1011.
Example 4:
Input: 10
Output: True
Explanation:
The binary representation of 10 is: 1010.
<Solution>

想法如下
  • 先找出 LSB 是 1 還是 0,然後一個一個 bit 檢查是否是預期的答案。例如 LSB 是 0 的話,下一個 bit 就應該是 1,再下一個 bit 是 0
code 如下

Java

Java 還可以利用一些內建函式來解

code 如下

沒有留言:

張貼留言