717. 1-bit and 2-bit Characters

来源:互联网 发布:培训 java程序员 编辑:程序博客网 时间:2024/05/16 00:50

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).

Now given a string represented by several bits. Return whether the last character must be a one-bit character or not. The given string will always end with a zero.

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.

Note:

1 <= len(bits) <= 1000.
bits[i] is always 0 or 1.

思路:
如果出现1,则必须跟后面的0或1组成一个两位字符。因此从前往后遍历,如果bits[i] = 1,则将bits[i + 1]改为1;循环结束后,如果数组最后一位是1,则一定是一个两位字符,如果是0,则是一个一位字符。

class Solution {    public boolean isOneBitCharacter(int[] bits) {        for(int i = 0; i < bits.length - 1; i++){            if(bits[i] == 1){                bits[i + 1] = 1;                i++;            }        }        return bits[bits.length - 1] == 0;     }}
原创粉丝点击