1-bit and 2-bit Characters — LeetCode 717 Python Solution

EasyArray
Problem
#717
Reading time
2 min

The problem

We have two special characters: The first character can be represented by one bit 0. The second character can be represented by two bits (10 or 11).

Example

Input
bits = [1,0,0]
Output
true
Explanation
The only way to decode it is two-bit character and one-bit character.

Python solution

Python
class Solution:
    def isOneBitCharacter(self, bits: List[int]) -> bool:
        i, n = 0, len(bits)
        while i < n - 1:
            i += bits[i] + 1
        return i == n - 1

Complexity

MeasureComplexity
TimeO(n), where n is the length of the array \textit{bits}
SpaceO(1) auxiliary

Related problems

Frequently asked questions

How hard is LeetCode 717. 1-bit and 2-bit Characters?
LeetCode 717. 1-bit and 2-bit Characters is rated Easy on LeetCode.
What is the time complexity of LeetCode 717. 1-bit and 2-bit Characters?
The Python solution on this page runs in O(n), where n is the length of the array \textit{bits}.
What is the space complexity of LeetCode 717. 1-bit and 2-bit Characters?
The Python solution on this page uses O(1) auxiliary space.
What topics does LeetCode 717. 1-bit and 2-bit Characters cover?
LeetCode 717. 1-bit and 2-bit Characters is tagged Array on LeetCode.

Stuck on problems like this in a live interview?

Stealth Interview is a desktop app for macOS and Windows. It reads the problem off your screen and returns a working solution with a step-by-step explanation and its time and space complexity — invisible to screen sharing.

Get Stealth Interview