class Solution {
public:
vector<int> shortestToChar(string S, char C) {
vector<int> res(S.size(), 0);
vector<int> Cpos; // [3,5,6,10]
for(int i=0;i<S.size();i++){
if (S[i]==C){
Cpos.push_back(i);
}
}
for(int i=Cpos[0]-1;i>=0;i--){
res[i] = Cpos[0] - i;
}
for(int i=Cpos[Cpos.size()-1]+1;i<S.size();i++){
res[i] = i-Cpos[Cpos.size()-1];
}
for(int k=0;k<Cpos.size()-1;k++){
int left = Cpos[k];
int right = Cpos[k+1];
for(int i=left+1;i<=right-1;i++){
res[i] = min(i-left, right-i);
}
}
return res;
}
};
821. Shortest Distance to a Character
最新推荐文章于 2024-06-02 17:27:15 发布