সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ইংরেজি ছোট হাতের অ্যালফাবেটের স্ট্রিং str প্রথম আর্গুমেন্ট এবং একটি একক ক্যারেক্টার char (যে স্ট্রিং str-এ বিদ্যমান) দ্বিতীয় আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটি একটি অ্যারে তৈরি করবে এবং ফেরত দেবে যাতে স্ট্রিং 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 ]