Shortest Distance to a Character
From LeetCode
problem description / sulution
Solution in Python3
class Solution:
    def shortestToChar(self, S: str, C: str) -> List[int]:
        shortest_dist = []
        dist = float('inf')
        for c in S:
            if c == C:
                dist = 0
            else:
                dist += 1
            shortest_dist.append(dist)
        
        dist = float('inf')
        for c, i in enumerate(S[::-1]):
            if c == C:
                dist = 0
            else:
                dist += 1
            shortest_dist[l - i] = min(shortest_dist[i], dist)
        return shortest_dist    
            
I am lucky to get
Runtime: 48 ms, faster than 87.25% of Python3 online submissions for Shortest Distance to a Character.
Time Complexity
\(O(l)\), where \(l\) is the length of S.
Comments