[leetcode] 1 比特与 2 比特字符-水题

39 阅读1分钟

题目链接
在这里插入图片描述
指针 i i i从 0 0 0开始往后走,如果当前位置的值为 0 0 0,则一定是第一种情况,指针向右移一位
如果说当前值为 1 1 1,则一定是第二种情况,指针向右移动两位,如果说最终 i = = b i t s . s i z e ( ) − 1 i == bits.size() - 1 i==bits.size()−1
那么说就是一个合法的

class Solution {
public:
    bool isOneBitCharacter(vector<int>& bits) {
        int i;
        for(i = 0;i < bits.size() - 1;) {
            i += bits[i] + 1;
        }
        return (i == bits.size() - 1);
    }
};