题目来源于力扣(LeetCode)
一、题目
题目相关标签:数组
说明:
1 <= len(bits) <= 1000
.bits[i]
总是0
或1
.
二、解题思路
-
据题意:给定的字符串总是由0结束。
-
可以根据数组最后的 0 之前的连续 1 的个数来判断最后的元素 0 是否为 “1 比特字符”
-
倒序遍历数组(起始索引为倒数第二),记录元素 1 的个数,遇元素 0 时,结束遍历
-
最后判断记录的连续元素 1 的个数是否为偶数,为偶数时,返回 true,否则返回 false
三、代码实现
public static boolean isOneBitCharacter(int[] bits) {
// 记录最后一位元素之前的连续 1 的个数
int oneCharacterContinuous = 0;
for (int i = bits.length - 2; i >= 0; i--) {
if (bits[i] == 0) {
break;
} else {
oneCharacterContinuous ++;
}
}
// 为偶数时,返回 true
return oneCharacterContinuous % 2 == 0 ? true : false;
}
四、执行用时
五、部分测试用例
public static void main(String[] args) {
int[] bits = {1, 0, 0}; // output:true
// int[] bits = {1, 1, 1, 0}; // output: false
boolean result = isOneBitCharacter(bits);
System.out.println(result);
}