leetcode刷题937-1

leetcode刷题937-1(1-bit and 2-bit)

感想:第一次刷题有点蒙,对操作不熟悉
           选择了比较熟悉的C语言进行编写,以后还会尝试其他语言
                     英文题目给很难读懂,努力克服!
                     
题目解析:
题目要求判断最后一个输出是不是1比特的字符
判断依据是        最后一个输出是单独的  0,则为true
                 若是最后一个0是被双字节连带输出,如10,则为false
                                                    
做题逻辑:  
按数组顺序读取:
对于双字节的判断标准是:若读取到1,则可以进行跳跃,即跳过1的下一个字符;接着往下读取,若读取到0,则正常往下读取;若一直读取到了i=bitsSize,则意味着最后是以双字节输出的,则输出false(因为题目规定输入数组最后以0结束,就不需要考虑结尾为1的情况)
否则,输出true

考查方向:数组

错误:
想过用直接对最后的几个元素进行判断,后来发现这样行不通,因为后面的关系是建立再前面的基础之上的,不能单独的分出来做判断。

c代码:
bool isOneBitCharacter(int* bits, int bitsSize) {
    int i=0;
    while(i<bitsSize){
        if(bits[i]==1){
            i=i+2;
            if(i==bitsSize)
                return false;
        }
        else 
            i=i+1;
    }
    return true;
}

猜你喜欢

转载自blog.csdn.net/dingkm666/article/details/84500833