Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में मिलान करने वाले सबस्ट्रिंग की गिनती

समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो एक स्ट्रिंग, str, को पहला तर्क और स्ट्रिंग्स की एक सरणी, arr, को दूसरा तर्क के रूप में लेता है। हमारे फ़ंक्शन को arr[i] की संख्या गिनकर वापस करनी चाहिए जो स्ट्रिंग str का उपअनुक्रम है।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है

इनपुट

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
  1. JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स

    const ES2015 (ES6) में पेश किया गया एक ब्लॉक-स्कोप्ड वेरिएबल डिक्लेरेशन है जो रीअसाइनमेंट को रोकता है। यह आधुनिक JavaScript में डिफ़ॉल्ट विकल्प होना चाहिए जब रीअसाइनमेंट की आवश्यकता न हो। उदाहरण { try { a = 44; // TypeError: Assignment to constant variable } catch (e

  1. JavaScript में Const vs Let JavaScript में Const vs Let

    Const और let को ES2015 में ब्लॉक-स्कोप्ड वेरिएबल घोषित करने के लिए पेश किया गया था। जबकि let का उपयोग करके घोषित वेरिएबल को पुनः असाइन किया जा सकता है, const का उपयोग करके घोषित वेरिएबल को पुनः असाइन नहीं किया जा सकता। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <me

  1. - JavaScript में सीमा योग के साथ जोड़े गिनना

    रेंज योग रेंज योग rangeSum(i, j) को एक सरणी में इंडेक्स i और j (i ≤ j) के बीच के तत्वों के योग के रूप में परिभाषित किया गया है, जिसमें दोनों शामिल हैं। समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो पूर्णांकों की एक सरणी arr को पहले आर्गुमेंट के रूप में और दो संख्याओं, upper और lower को दूसरे और ती