diff --git a/README.md b/README.md index 7dbf4b2..b2b961e 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ | # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | +|693|[Binary Number with Alternating Bits](https://leetcode.com/problems/binary-number-with-alternating-bits)|[JavaScript](./algorithms/BinaryNumberWithAlternatingBits.js)|Easy| |682|[Baseball Game](https://leetcode.com/problems/baseball-game)|[JavaScript](algorithms/BaseballGame.js)|Easy| |680|[Valid Palindrome II](https://leetcode.com/problems/valid-palindrome-ii)|[JavaScript](./algorithms/ValidPalindrome_II.js)|Easy| |678|[Valid Parenthesis String](https://leetcode.com/problems/valid-parenthesis-string)|[JavaScript](./algorithms/ValidParenthesisString.js)|Medium| diff --git a/algorithms/BinaryNumberWithAlternatingBits.js b/algorithms/BinaryNumberWithAlternatingBits.js new file mode 100644 index 0000000..7d7a2ea --- /dev/null +++ b/algorithms/BinaryNumberWithAlternatingBits.js @@ -0,0 +1,43 @@ +// Source : https://leetcode.com/problems/binary-number-with-alternating-bits +// Author : Dean Shi +// Date : 2017-10-09 + +/*************************************************************************************** + * + * 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. + * + ***************************************************************************************/ + +/** + * @param {number} n + * @return {boolean} + */ +var hasAlternatingBits = function(n) { + const m = n + (n >> 1) + 1 + return (m & (m - 1)) === 0 +}; \ No newline at end of file