DDSA
Advertisement

821. Shortest Distance to a Character

821.cs
C#
public class Solution
{
    public int[] ShortestToChar(string s, char c)
    {
        int n = s.Length;
        int[] ans = new int[n];
        int prev = -n;

        for (int i = 0; i < n; ++i)
        {
            if (s[i] == c)
                prev = i;
            ans[i] = i - prev;
        }

        for (int i = prev - 1; i >= 0; --i)
        {
            if (s[i] == c)
                prev = i;
            ans[i] = Math.Min(ans[i], prev - i);
        }

        return ans;
    }
}
Advertisement
Was this solution helpful?