समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो अंग्रेजी लोअरकेस अक्षरों की एक स्ट्रिंग लेता है, str, पहले तर्क के रूप में और एक एकल वर्ण, char, जो स्ट्रिंग str में मौजूद है, दूसरे तर्क के रूप में।
हमारे फ़ंक्शन को एक सरणी तैयार करनी चाहिए और वापस करनी चाहिए, जो स्ट्रिंग स्ट्र में प्रत्येक वर्ण के लिए, चार द्वारा निर्दिष्ट स्ट्रिंग में निकटतम वर्ण से इसकी दूरी रखती है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
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 ]