列表

详情


717. 1 比特与 2 比特字符

有两种特殊字符:

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

 

示例 1:

输入: bits = [1, 0, 0]
输出: true
解释: 唯一的解码方式是将其解析为一个两比特字符和一个一比特字符。
所以最后一个字符是一比特字符。

示例 2:

输入:bits = [1,1,1,0]
输出:false
解释:唯一的解码方式是将其解析为两比特字符和两比特字符。
所以最后一个字符不是一比特字符。

 

提示:

相似题目

格雷编码

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool isOneBitCharacter(vector<int>& bits) { } };

golang 解法, 执行用时: 4 ms, 内存消耗: 2.7 MB, 提交时间: 2021-06-18 10:46:19

func isOneBitCharacter(bits []int) bool {
    n := len(bits)
    if n == 1 {
        return true 
    }

	// 最后0的前面有几个连续的1, 偶数个则为1比特, 奇数个2比特
	k := 0
	for i := n-2; i>=0; i-- {
		if bits[i] == 0 {
			break
		} else {
			k++
		}
	}
	
	return k % 2 == 0
}

上一题