2055. Plates Between Candles (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution:
    def platesBetweenCandles(self, s: str, queries: List[List[int]]) -> List[int]:
        arr = []
        for i, c in enumerate(s):
            if c == "|":
                arr.append(i)
        result = []
        for l, r in queries:
            i = bisect_left(arr, l)
            j = bisect_right(arr, r)
            if j == 0 or i == len(arr):
                result.append(0)
            else:
                result.append(max(0, arr[j - 1] - arr[i] - (j - 1 - i)))
        return result