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.
有兩種編碼方式:
one bit:0(一種pattern)
two bits:10,11(兩種pattern)
去檢查最後一個character是用什麼編碼方式
Example 1:
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.
Example 2:
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.
想法:
比較兩種編碼差異 ,一個是1開頭(2 bits : false)兩個數字 ; 一個是0開頭(1 bits : true)一個數字。
Code:
bool isOneBitCharacter(int* bits, int bitsSize){
bool ans=false;
for(int i=0;i<bitsSize;i++){
if(bits[i]==1){
i++;
ans=false;
}
else{
ans=true;
}
}
return ans;
}