821. 字符的最短距离

给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。

示例 1:
输入: S = "loveleetcode", C = 'e'
输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]
说明:

字符串 S 的长度范围为 [1, 10000]。
C 是一个单字符,且保证是字符串 S 里的字符。
S 和 C 中的所有字母均为小写字母。

题解

var shortestToChar = function(S, C) {
    var a=S.split(C)
        var c=[]
        for(var i=0;i<a.length;i++){
            var b=a[i].split('')
            for(var j=0;j<b.length;j++){
                b[j]=j+1
                if(j>(b.length-1)/2&&i!=0&&i!=a.length-1){
                    b[j]=b.length-j

                }else if(i==0){
                    b[j]=b.length-j

                }
            }
            if(i!=a.length-1){
                b.push(0)
            }
            c=c.concat(b)
        }
        return c
};

发表评论

您的电子邮箱地址不会被公开。