1 比特与 2 比特字符
1 比特与 2 比特字符
有两种特殊字符:
- 第一种字符可以用一比特 0 表示
- 第二种字符可以用两比特(10 或 _11_)表示
一个以 0 结尾的二进制数组 bits ,如果最后一个字符必须是一个一比特字符,则返回 true 。
根据题意,第一种字符一定以 0 开头,第二种字符一定以 1 开头。
我们可以对 bits 数组从左到右遍历。当遍历到 bits[i] 时,如果 bits[i]=0 ,说明遇到了第一种字符,将 i 的值增加 1;如果 bits[i]=1,说明遇到了第二种字符,可以跳过 bits[i+1] (注意题目保证 bits 一定以 0 结尾,所以 bits[i]一定不是末尾比特,因此 bits[i+1] 必然存在),将 i 的值增加 2。
上述流程也说明 bits 的编码方式是唯一确定的,因此若遍历到 i=n−1,那么说明最后一个字符一定是第一种字符.
1 | let isOneBitCharacter = function(bits) { |
评论
LivereValine