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