Leetcode 841 Solution
This article provides solution to leetcode question 841 (shortest-distance-to-a-character)
Access this page by simply typing in "lcs 841" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/shortest-distance-to-a-character
Solution
class Solution {
public:
vector<int> shortestToChar(string S, char C) {
queue<int> q;
vector<int> a(S.size(), INT_MAX);
int last_pos = -1;
for (int i = 0; i < S.size(); i++)
{
if (S[i] == C)
last_pos = i;
if (last_pos == -1)
continue;
a[i] = min(a[i], i - last_pos);
}
last_pos = -1;
for (int i = S.size() - 1; i >= 0; i--)
{
if (S[i] == C)
last_pos = i;
if (last_pos == -1)
continue;
a[i] = min(a[i], last_pos - i);
}
return a;
}
};