[検索文字列]最短文字距離


指定された文字列および文字(t)の場合、出力文字列の各文字とtとの間の最小距離.
function solution(s,t) {
    let answer = [];
    let num = 1000;
  
    for(let x of s){
        if(x===t){
            num = 0;
            answer.push(num);
        }else{
            num++;
            answer.push(num);
        }
    }
  
    num = 1000;
  
    for(let i=s.length-1; i>=0; i--){
        if(s[i]===t) {
            num = 0;
            answer.push(num);
        }else {
            num++;
            answer[i]=Math.min(answer[i], num);
        }
    }
  
    return answer;
}
let str = 'teachermode';
console.log(solution(str,'e'));

  • 最初のfor文は文字列順に回転し、文字tとの距離を求める.

  • 2番目のfor文は文字列を反転し、文字tとの距離を求める.

  • 2つのfor文の1つの求めた距離を比較し、より小さな値を返します.

  • Math.min(値1,値2):2つの値のうち小さい値を返す