1-bit and 2-bit Characters
Problem statement
We have two special characters:
- The first character can be represented by one bit
0. - The second character can be represented by two bits (
10or11).
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: trueExplanation: 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: falseExplanation: 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 <= 1000bits[i]is either0or1.
My solution
/**
* @param {number[]} bits
* @return {boolean}
*/
var isOneBitCharacter = function(bits) {
let i = 0;
let len = bits.length - 1
while (true) {
if (bits[i] === 0) {
i++;
if (i > len) {
return true;
}
} else {
i += 2;
if (i > len) {
return false;
}
}
}
};