class Solution {
public:
bool isOneBitCharacter(vector<int>& bits) {
}
};
717. 1 比特与 2 比特字符
有两种特殊字符:
0
表示10
或 11
)表示给你一个以 0
结尾的二进制数组 bits
,如果最后一个字符必须是一个一比特字符,则返回 true
。
示例 1:
输入: bits = [1, 0, 0] 输出: true 解释: 唯一的解码方式是将其解析为一个两比特字符和一个一比特字符。 所以最后一个字符是一比特字符。
示例 2:
输入:bits = [1,1,1,0] 输出:false 解释:唯一的解码方式是将其解析为两比特字符和两比特字符。 所以最后一个字符不是一比特字符。
提示:
1 <= bits.length <= 1000
bits[i]
为 0
或 1
相似题目
原站题解
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 }