D126717.1位和2位字符问题链接717.1位和2位字符问题分析本题的描述非常难懂,看了Discussion不同的解释才明白。现在使用2位霍夫曼编码,即:只有0、10和11。给定一个数组,每个值都是1位。现在将最后一位固定为0,判断最后一位是1位还是2位。即:0of10,或者0of0。解题思路是考虑用栈来实现。遇到1就入栈,遇到0就把“最后一位是1位代码”标志置1。如果栈中已经有值,说明当前代码是2位。将标志设置为0。最终代码$isOneBit=false;foreach($bitsas$bit){if(isset($stack[0])){array_pop($stack);$isOneBit=false;}else{if($bit==1){$stack[]=$bit;}else{$isOneBit=true;}}}返回$isOneBit;}}如果您觉得本文对您有用,欢迎使用爱根贷支持。
