Skip to main content
Back to problems
#717
Easy Algorithms

1 bit and 2 bit characters

Array
49.5% acceptance
Feb 21, 2026
1245
2362
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). Given a binary array bits that ends with 0, return true if the last character must be a one-bit character.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
/*
 * 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).
 * Given a binary array bits that ends with 0, return true if the last character must be a one-bit character.
 * Example 1:
 * Input: bits = [1,0,0]
 * Output: true
 * Explanation: The only way to decode it is two-bit character and one-bit character.
 * So the last character is one-bit character.
 * Example 2:
 * Input: bits = [1,1,1,0]
 * Output: false
 * Explanation: The only way to decode it is two-bit character and two-bit character.
 * So the last character is not one-bit character.
 * Constraints:
 * 1 <= bits.length <= 1000
 * bits[i] is either 0 or 1.
 */
impl Solution {
  pub fn is_one_bit_character(bits: Vec<i32>) -> bool {
    let n = bits.len();
    let mut i = 0;
    while i < n - 1 {
      if bits[i] == 1 { i += 2; } else { i += 1; }
    }
    i == n - 1
  }
}