Welcome to Subscribe On Youtube
717. 1bit and 2bit Characters
Description
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
or11
).
Given a binary array bits
that ends with 0
, return true
if the last character must be a onebit character.
Example 1:
Input: bits = [1,0,0] Output: true Explanation: The only way to decode it is twobit character and onebit character. So the last character is onebit character.
Example 2:
Input: bits = [1,1,1,0] Output: false Explanation: The only way to decode it is twobit character and twobit character. So the last character is not onebit character.
Constraints:
1 <= bits.length <= 1000
bits[i]
is either0
or1
.
Solutions

class Solution { public boolean isOneBitCharacter(int[] bits) { int i = 0, n = bits.length; while (i < n  1) { i += bits[i] + 1; } return i == n  1; } }

class Solution { public: bool isOneBitCharacter(vector<int>& bits) { int i = 0, n = bits.size(); while (i < n  1) i += bits[i] + 1; return i == n  1; } };

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

func isOneBitCharacter(bits []int) bool { i, n := 0, len(bits) for i < n1 { i += bits[i] + 1 } return i == n1 }

/** * @param {number[]} bits * @return {boolean} */ var isOneBitCharacter = function (bits) { let i = 0; const n = bits.length; while (i < n  1) { i += bits[i] + 1; } return i == n  1; };