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
or11
).
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 either0
or1
.
SOLUTION:
class Solution:
def isValid(self, bits, i):
if i == 0:
if bits[0] == 0:
return True
else:
return False
if i == 1:
if bits[0] == 1:
return True
elif bits[1] == 0:
return True
else:
return False
if bits[i - 1] == 1 and self.isValid(bits, i - 2):
return True
if bits[i] == 0 and self.isValid(bits, i - 1):
return True
return False
def isOneBitCharacter(self, bits: List[int]) -> bool:
if len(bits) >= 2:
return self.isValid(bits, len(bits) - 2)
else:
return True
Top comments (0)