Question

Code
class Solution:
def isArraySpecial(self, nums: List[int], queries: List[List[int]]) -> List[bool]:
parity = []
for i in range(len(nums)):
if i == 0:
parity.append(i)
else:
if (nums[i] + nums[i - 1]) % 2 == 1:
continue
else:
parity.append(i)
def isSpecial(query):
l, r = 0, len(parity) - 1
while l <= r:
mid = l + (r - l) // 2
if parity[mid] > query[0]:
r = mid - 1
else:
if mid == len(parity) - 1 or parity[mid + 1] > query[0]:
l = mid
break
l = mid + 1
if l >= len(nums) or r < 0:
return False
last = len(nums) - 1 if l == len(parity) - 1 else parity[l + 1] - 1
return query[1] <= last
return [isSpecial(q) for q in queries]