We have two special characters. The first character can be represented by one bit 0
. The second character can be represented by two bits (10
or 11
).
Now given a string represented by several bits. Return whether the last character must be a one-bit character or not. The given string will always end with a zero.
Input: bits = [1, 0, 0] Output: True Explanation: The only way to decode it is two-bit character and one-bit character. So the last character is one-bit character.
Input: bits = [1, 1, 1, 0] Output: False Explanation: The only way to decode it is two-bit character and two-bit character. So the last character is NOT one-bit character.
class Solution { public: bool isOneBitCharacter(vector<int> &bits) { int i=0; int n=bits.size(); while (i<n-1) { if (bits[i]==0) i++; else i+=2; } return i==n-1; } };
这题用第一种方法是类似增量指针的用法 用指针的增减伴随着过程中遇见的测试的量 与理想的结果验证