class Solution:
    def shortestToChar(self, S: str, C: str) -> List[int]:
        # time O(N) space O(N)
        #[3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]  el 
        length = len(S)
        res = [length]*length
        # r e l loop 
        l = 0
        r = length- 1 
        el = None 
        er = None 
        while l < length:
            if S[l] == C:
                el = l
                res[l] = 0
                l += 1 
                continue 
            if el != None:
                res[l] = l-el
            l += 1 
            
        while r >= 0: 
            if S[r] == C:
                er = r 
                r -= 1 
                continue 
            if er != None:
                 res[r] = min(res[r],er-r)
            r -= 1 

        return res