문제
영문 소문자 문자열 str을 첫 번째 인수로, 문자열 str에 존재하는 단일 문자 char를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.
우리 함수는 문자열 str의 각 문자에 대해 char로 지정된 문자열의 가장 가까운 문자로부터의 거리를 포함하는 배열을 준비하고 반환해야 합니다.
예를 들어, 함수에 대한 입력이
인 경우입력
const str = 'somestring'; const char = 's';
출력
const output = [0, 1, 2, 1, 0, 1, 2, 3, 4, 5]
예시
다음은 코드입니다 -
const str = 'somestring'; const char = 's'; const shortestDistance = (str = '', char = '') => { const res = new Array(str.length).fill(Infinity) let prev = Infinity const handleIndex = (i) => { if (str[i] === char) { prev = i } res[i] = Math.min(res[i], Math.abs(i - prev), ) } for (let i = 0; i < str.length; i++) { handleIndex(i) } prev = Infinity for (let i = str.length - 1; i >= 0; i--) { handleIndex(i) } return res } console.log(shortestDistance(str, char));
출력
[ 0, 1, 2, 1, 0, 1, 2, 3, 4, 5 ]