1位元與2位元字元
阿新 • • 發佈:2019-01-10
有兩種特殊字元。第一種字元可以用一位元0
來表示。第二種字元可以用兩位元(10
或 11
)來表示。
現給一個由若干位元組成的字串。問最後一個字元是否必定為一個一位元字元。給定的字串總是由0結束。
示例 1:
輸入: bits = [1, 0, 0] 輸出: True 解釋: 唯一的編碼方式是一個兩位元字元和一個一位元字元。所以最後一個字元是一位元字元。
示例 2:
輸入: bits = [1, 1, 1, 0] 輸出: False 解釋: 唯一的編碼方式是兩位元字元和兩位元字元。所以最後一個字元不是一位元字元。
注意:
1. 1 <= len(bits) <= 1000
2. bits[i] 總是0 或 1.
思路:用一個指標,遇見“1”就走2,否則就走1;判斷這個指標下標和0位置是否相等就ok了,時間複雜度O(n)。
程式碼:
class Solution {
public:
bool isOneBitCharacter(vector<int>& bits) {
int i=0;
for(i=0;i<bits.size()-1;)
{
if(bits[i]==0)
i++;
else
i+=2;
}
return i==bits.size()-1?1:0;
}
};