LeetCode in Kotlin

717. 1-bit and 2-bit Characters

Easy

We have two special characters:

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:

Solution

class Solution {
    fun isOneBitCharacter(arr: IntArray): Boolean {
        var i = 0
        while (i < arr.size - 1) {
            i = if (arr[i] == 1) i + 2 else i + 1
        }
        return i == arr.size - 1
    }
}