美文网首页工作生活
LeetCode-717. 1比特与2比特字符

LeetCode-717. 1比特与2比特字符

作者: 一只可爱的柠檬树 | 来源:发表于2019-07-02 16:52 被阅读0次

题目描述 1比特与2比特字符

有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。

现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。

示例 1:

输入:
bits = [1, 0, 0]
输出: True
解释:
唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。

示例 2:

输入:
bits = [1, 1, 1, 0]
输出: False
解释:
唯一的编码方式是两比特字符和两比特字符。所以最后一个字符不是一比特字符。

解题思路

  • 嗯,我的垃圾思路就是从前往后遍历,垃圾第一名。
  • 大佬思路:从后往前偶数(包括0)个连续1就返回TRUE。
    设想给定的数组为[xx....xx011...110],0之前的1为N(N = 0,1,2...)个,事实上这一串连续1之前的“零”将整个bits截为两段,不管这个“零”是一个单独的bit "0" 还是和它前面的bit "1" 组成两个bit "10" ,它都不会对后面的bits" 11...110 "有任何影响。所以我们只用统计后面这部分连续的1有多少个就好了,偶数个为TRUE,奇数个为FALSE。

代码

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

大佬思路代码

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

相关文章

  • 1比特与2比特字符

    利用i作为增量指针,碰到0,增1,碰到1,增2,最后判断i的大小与bits剩余长度是否相等。

  • 1比特与2比特字符

    题目: 有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。现给一个由...

  • ARTS打卡第四周

    ARTS打卡第四周 Algorithm:每周至少做一个 leetcode 的算法题 717. 1比特与2比特字符 ...

  • leetcode 717 1比特与2比特字符

    状态机,画出来最好,除了要把各个情况考虑全外,还要考虑先后判断顺序

  • 717. 1比特与2比特字符

    有两种特殊字符: 第一种字符可以用一个比特 0 来表示第二种字符可以用两个比特(10 或 11)来表示、给定一个以...

  • Image String MemoryStream byte

    1 比特数组转图片 2 图片转比特数组 3 字符串转比特数组 4 比特数组转字符串 5 内存流转比特数组 6 比...

  • 巴比特原创文章版权上链,让创作者维权不再难!

    近日,巴比特与数秦科技旗下的保全网达成合作,巴比特网站上1万+篇原创文章完成了在保全链和比原链的上链存证,区块链在...

  • 数据变量

    字符编码: 8bit = 8位=8比特 8比特(Bit)= 1字节(Byte)=1B 1字(Word)=2字节(B...

  • 区块链快速术语检索

    1.比特币地址(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串字符和数字组成,...

  • 区块链相关术语

    地址: 比特币地址(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串字符和数字组...

网友评论

    本文标题:LeetCode-717. 1比特与2比特字符

    本文链接:https://www.haomeiwen.com/subject/narchctx.html