class Solution{
public boolean isOneBitCharacter(int[] bits){
int count = 0;
int len = bits.length;
int index = len-2;
while((index>=0) && (bit[index]==1)){
count++;
index--;
}
if(count%2==0){
return true;
}else{
return false;
}
}
}
题目中给定有两种字符,一种为一比特用0表示,另一种为两比特字符用10或11表示,所以只有三种合法形式, 和数组的最后一位没有关系。从数组倒数第二位开始遍历1的个数,不管最后一位是否为0, 只要之前的连续的1的个数为奇数,则最后一个字符一定为两比特字符;同理,只要之前连续的1的个数为偶数,则最后一个字符一定为一比特字符,因为最后一位的1不能单独构成一个字符