Skip to content

找规律

编码

717. 1 比特与 2 比特字符 easy

有两种特殊字符:

  • 第一种字符可以用一比特 0 表示
  • 第二种字符可以用两比特(10 或 11)表示

给你一个以 0 结尾的二进制数组 bits,如果最后一个字符必须是一个一比特字符,则返回 true。

如果有 0 一定是断点; 求尾部 [:n-1] 连续 1 的个数, 奇数就是 false

java
class Solution {
    public boolean isOneBitCharacter(int[] bits) {
        int n = bits.length;
        if (bits[n - 1] == 1) return false;
        int cnt = 0;
        for (int i = n - 2; i >= 0 && bits[i] == 1; i--) {
            cnt++;
        }
        return (cnt & 1) == 0;
    }
}