Leetcode PHP問題解--D 49 821.Shortest Distance to a Character


D49 821. Shortest Distance to a Character
タイトルリンク
821. Shortest Distance to a Character
テーマ分析
1つの文字列sおよび1つの文字cが与えられる.
指定された文字cからの文字列の各文字の最短距離を返します.
構想
まずarray_keysは、文字列Cの文字Sの位置を見つけた.
現在遍歴されている位置が次の出現文字Cの前である場合、下付き文字を直接減算すると距離が得られる.
そうでなければ、現在の下付き文字が前の出現文字Cよりも大きく、次の文字Cが存在する場合、距離は両者の中で最も小さい.距離が0の場合、次に取得するCの位置がマークされる.
最終コード
 $char){
            $dist = abs($keys[$prev] - $index);
            if($index > $keys[$prev] && isset($keys[$prev+1])){
                $dist = min($index-$keys[$prev],$keys[$prev+1]-$index);
                if($dist == 0){
                    $prev++;
                }
            }
            $distances[] = $dist;
        }

        return $distances;
    }
}

この文章があなたに役に立つと思ったら、よくはつでんするで援助してください.