1. 程式人生 > >LeetCode日常刷題

LeetCode日常刷題

693. 交替位二進位制數

給定一個正整數,檢查他是否為交替位二進位制數:換句話說,就是他的二進位制數相鄰的兩個位數永不相等。

示例 1:

輸入: 5
輸出: True
解釋:
5的二進位制數是: 101

示例 2:

輸入: 7
輸出: False
解釋:
7的二進位制數是: 111

示例 3:

輸入: 11
輸出: False
解釋:
11的二進位制數是: 1011 

 示例 4:

輸入: 10
輸出: True
解釋:
10的二進位制數是: 1010

class Solution {
    public boolean hasAlternatingBits(int n) {
        String source=Integer.toBinaryString(n);
        for(int i=1;i<source.length();i++)
        	if(source.charAt(i)==source.charAt(i-1))
        		return false;
        return true;
    }
}
class Solution {
    public boolean hasAlternatingBits(int n) {
         return Integer.toBinaryString(n).matches("(10)*1?");
    }
}