717.1 Bit and 2 Bit Characters
717.1 Bit and 2 Bit Characters
难度:Easy
有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。
现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。
1
示例 1:
2
3
输入:
4
bits = [1, 0, 0]
5
输出: True
6
解释:
7
唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。
8
示例 2:
9
10
输入:
11
bits = [1, 1, 1, 0]
12
输出: False
13
解释:
14
唯一的编码方式是两比特字符和两比特字符。所以最后一个字符不是一比特字符。
15
注意:
16
17
1 <= len(bits) <= 1000.
18
bits[i] 总是0 或 1.
Copied!
直接遍歷一遍,當遇到1開頭的前進兩步,遇到0則前進一步,看最後終止的時候在哪來判斷最後一位是否爲1比特。
1
class Solution {
2
public:
3
bool isOneBitCharacter(vector<int>& bits) {
4
int start=0;
5
while(start<bits.size()-1)
6
{
7
if(bits[start]) start+=2;
8
else start+=1;
9
}
10
return start==bits.size()-1;
11
}
12
};
Copied!
执行用时 :4 ms, 在所有 C++ 提交中击败了95.56%的用户 内存消耗 :8.8 MB, 在所有 C++ 提交中击败了72.51%的用户
Copy link