693. Binary Number with Alternating Bits 交替位的二进制数

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.
给定正整数,检查它的二进制数是否具有交替位:即,如果两个相邻位总是具有不同的值。
  1. /**
  2. * @param {number} n
  3. * @return {boolean}
  4. */
  5. var hasAlternatingBits = function(n) {
  6. let str = n.toString(2);
  7. let bit = -1;
  8. let index = 0;
  9. while (index < str.length) {
  10. if (bit == -1) {
  11. bit = str[index++];
  12. } else {
  13. if (str[index++] == bit) {
  14. return false;
  15. } else {
  16. bit = !bit;
  17. }
  18. }
  19. }
  20. return true;
  21. };







原文地址:https://www.cnblogs.com/xiejunzhao/p/7638815.html