# Solving Leetcode Interviews in Seconds with AI: Number of Even and Odd Bits


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "2595" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> You are given a positive integer n. Let even denote the number of even indices in the binary representation of n with value 1. Let odd denote the number of odd indices in the binary representation of n with value 1. Note that bits are indexed from right to left in the binary representation of a number. Return the array [even, odd].   Example 1:  Input: n = 50 Output: [1,2] Explanation: The binary representation of 50 is 110010. It contains 1 on indices 1, 4, and 5.  Example 2:  Input: n = 2 Output: [0,1] Explanation: The binary representation of 2 is 10. It contains 1 only on index 1.    Constraints:  1 <= n <= 1000  

	# Explanation
	Here's a solution to the problem, incorporating efficiency and clarity:

*   **Bit Manipulation:** Exploit bitwise operations to efficiently extract bits from the integer `n` without needing to explicitly convert it to a string.
*   **Iterative Check:** Iterate through the bits of `n` from right to left, checking if each bit is set (equal to 1). Simultaneously track the index (even or odd) of the bit.
*   **Counting Parity:** Increment the `even` or `odd` counters based on the index and the bit's value.

*   **Runtime Complexity:** O(log n), where n is the input number.  **Storage Complexity:** O(1)

	
	# Code
	```python
	def even_odd_bits(n: int) -> list[int]:
    """
    Given a positive integer n. Let even denote the number of even indices in the
    binary representation of n with value 1. Let odd denote the number of odd
    indices in the binary representation of n with value 1.
    Note that bits are indexed from right to left in the binary representation of a number.
    Return the array [even, odd].

    Example:
    Input: n = 50
    Output: [1,2]
    Explanation: The binary representation of 50 is 110010. It contains 1 on indices 1, 4, and 5.

    Input: n = 2
    Output: [0,1]
    Explanation: The binary representation of 2 is 10. It contains 1 only on index 1.
    """
    even = 0
    odd = 0
    index = 0
    while n > 0:
        if n % 2 == 1:
            if index % 2 == 0:
                even += 1
            else:
                odd += 1
        n //= 2
        index += 1
    return [even, odd]
	```
			
