821 LeetCode 字符的最短距离

题目描述:
在这里插入图片描述
思路:
先从左向右遍历一遍,找到位置关系;
然后再从右向左遍历一遍,求出最小值

代码如下:

class Solution {
public:
    vector<int> shortestToChar(string S, char C) {
        vector<int>res(S.size(),S.size());
        int pre=S.size();
        for(int i=0;i<S.size();i++){
            if(S[i]==C)
            pre=i;
            res[i]=min(abs(pre-i),res[i]);
        }
        pre=-1;
        for(int i=S.size()-1;i>=0;i--){
            if(S[i]==C)
            pre=i;
            res[i]=min(abs(pre-i),res[i]);
        }
        return res;
    }
};
发布了123 篇原创文章 · 获赞 0 · 访问量 945

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104415702