Sự cố
Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một chuỗi các bảng chữ cái viết thường tiếng Anh, str, làm đối số đầu tiên và một ký tự duy nhất, char, tồn tại trong chuỗi str, làm đối số thứ hai.
Hàm của chúng ta phải chuẩn bị và trả về một mảng, đối với mỗi ký tự trong chuỗi str, chứa khoảng cách của nó với ký tự gần nhất trong chuỗi được chỉ định bởi char.
Ví dụ:nếu đầu vào của hàm là
Đầu vào
const str = 'somestring'; const char = 's';
Đầu ra
const output = [0, 1, 2, 1, 0, 1, 2, 3, 4, 5]
Ví dụ
Sau đây là mã -
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));
Đầu ra
[ 0, 1, 2, 1, 0, 1, 2, 3, 4, 5 ]