717. 1-bit and 2-bit Characters
题目简介
/**
* @param {number[]} bits
* @return {boolean}
*/
本题给了一个数字数组 bits,它的元素只有可能是 1 或 0,且数组的最后一个元素必为 0
如果相邻的两个元素是 [1, 1] 或 [1, 0] 他们可以被合并为 [11] 或 [10],这种情况我们称之为 2 比特字符
如果某个元素是 [0],则它可以被合并为 [0],这种情况我们称之为 1 比特字符
题目要求我们回答给定的字符串 bits 的最后一个 0 是否是 1 比特字符
解题思路
我们可以遍历数组,如果遇到 1 的话,则表示遇到 2 比特字符了,我们把遍历下标加 2
反之如果遇到 0,我们就正常把遍历下标加 1 即可
遍历下标的边界是 0~bits.length - 2
如果最后遍历下标指向了数组的最后一个元素,则表示最后一个 0 是 1 比特字符,否则就是 2 比特字符
Javascript
/**
* @param {number[]} bits
* @return {boolean}
*/
var isOneBitCharacter = function(bits) {
const len = bits.length
let i = 0
while(i < len - 1) {
i += bits[i] + 1
}
return i === len - 1
};