717. 1比特与2比特字符『简单』

题目来源于力扣(LeetCode

一、题目

717. 1比特与2比特字符

题目相关标签:数组

说明:

  • 1 <= len(bits) <= 1000.
  • bits[i] 总是01.

二、解题思路

  1. 据题意:给定的字符串总是由0结束。

  2. 可以根据数组最后的 0 之前的连续 1 的个数来判断最后的元素 0 是否为 “1 比特字符”

  3. 倒序遍历数组(起始索引为倒数第二),记录元素 1 的个数,遇元素 0 时,结束遍历

  4. 最后判断记录的连续元素 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);
}
posted @ 2020-07-07 20:13  知音12138  阅读(61)  评论(0编辑  收藏