Leetcode 717. 1 位元與 2 位元字元(可以,一次過)
阿新 • • 發佈:2022-05-28
有兩種特殊字元:
第一種字元可以用一位元 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
Code:
class Solution { public: bool isOneBitCharacter(vector<int>& bits) { if(bits[bits.size()-1]!=0) return false; for(int i=1;i<bits.size();) { if(bits[i-1]==1&&(bits[i]==0||bits[i]==1)) { bits.erase(bits.begin()); bits.erase(bits.begin()); if(bits.size()==0) return false; } else { bits.erase(bits.begin()); if(bits.size()==0) return true; } } return true; } };