समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले तर्क के रूप में एक स्ट्रिंग, स्ट्र, और दूसरे तर्क के रूप में स्ट्रिंग्स, एआर की एक सरणी लेता है। हमारे फ़ंक्शन को एआर [i] की संख्या को गिनना और वापस करना चाहिए जो स्ट्रिंग स्ट्र के बाद है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const str = 'klmnop'; const arr = ['k', 'll', 'klp', 'klo'];
आउटपुट
const output = 3;
आउटपुट स्पष्टीकरण
क्योंकि आवश्यक तार 'k', 'klp', और 'klo' हैं
उदाहरण
निम्नलिखित कोड है -
const str = 'klmnop'; const arr = ['k', 'll', 'klp', 'klo']; const countSubstrings = (str = '', arr = []) => { const map = arr.reduce((acc, val, ind) => { const c = val[0] acc[c] = acc[c] || [] acc[c].push([ind, 0]) return acc }, {}) let num = 0 for (let i = 0; i < str.length; i++) { if (map[str[i]] !== undefined) { const list = map[str[i]] map[str[i]] = undefined list.forEach(([wordIndex, charIndex]) => { if (charIndex === arr[wordIndex].length - 1) { num += 1 } else { const nextChar = arr[wordIndex][charIndex + 1] map[nextChar] = map[nextChar] || [] map[nextChar].push([wordIndex, charIndex + 1]) } }) } } return num } console.log(countSubstrings(str, arr));
आउटपुट
3