题目描述:有两种特殊的字符,一个可以用0来表示,一个可以用10或11表示,现在给你一个数组,数值为1或0,让你判断最后一个字符是不是0;
思路:一开始没理解题目,以为数组内的数组是可以自己重排序的,就计算了0和1的个数来判断结果,发现a不了。就再看题目,发现数组顺序不变,也就是字符的表示是固定的,在这基础上进行判断。
参考答案和简短,逻辑和也简单,就是碰到0,表明是第一种字符,下标加1;碰到1,肯定是第二种字符,下标加2;
参考答案:
class Solution {
public boolean isOneBitCharacter(int[] bits) {
int i = 0;
while(i < bits.length - 1){
i += bits[i] + 1;
}
return (i == bits.length -1);
}
}