【Leetcode】 717. 1 比特与 2 比特字符

We have two special characters:

  • The first character can be represented by one bit 0.
  • The second character can be represented by two bits (10 or 11).

Given a binary array bits that ends with 0, return true if the last character must be a one-bit character.

Example 1:

Input: bits = [1,0,0]
Output: true

Explanation:

  • The only way to decode it is two-bit character and one-bit character.
  • So the last character is one-bit character.

Example 2:

Input: bits = [1,1,1,0]
Output: false

Explanation:

  • The only way to decode it is two-bit character and two-bit character.
  • So the last character is not one-bit character.

Constraints:

1 <= bits.length <= 1000
bits[i] is either 0 or 1.

Thought:
走两步 or 走一步 ?

AC

/*
 * @lc app=leetcode.cn id=717 lang=cpp
 *
 * [717] 1 比特与 2 比特字符
 */

// @lc code=start
class Solution {
    
    
public:
    bool isOneBitCharacter(vector<int>& bits) {
    
    
        const int N = bits.size();
        int pos = 0;
        while (pos < N - 1) {
    
    
            pos += bits[pos] == 1 ? 2 : 1;
        }
        return pos == N - 1;
    }
};
// @lc code=end

AC


p1
p2

猜你喜欢

转载自blog.csdn.net/qq_54053990/article/details/130861357