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

JavaScript में दो स्ट्रिंग्स में सामान्य वर्णों की गणना

समस्या

दो स्ट्रिंग्स str1 और str2 दिए गए हैं, उन वर्णों की संख्या गिनें जो दोनों स्ट्रिंग्स में समान रूप से मौजूद हैं। प्रत्येक वर्ण की गणना केवल उतनी बार की जाती है जितनी बार वह दोनों स्ट्रिंग्स में न्यूनतम बार आता है।

उदाहरण

const str1 = 'aabbcc'; 
const str2 = 'adcaa';

आउटपुट: 3 (सामान्य वर्ण: 'a' दो बार, 'c' एक बार)।

कार्यान्वयन

const commonCharacterCount = (str1 = '', str2 = '') => { 
  let count = 0; 
  str1 = str1.split(''); 
  str2 = str2.split(''); 
  str1.forEach(e => { 
    if (str2.includes(e)) { 
      count++; 
      str2.splice(str2.indexOf(e), 1); // मिलान वाले वर्ण को हटा दें ताकि दोबारा गिनती न हो 
    } 
  }); 
  return count; 
}; 

console.log(commonCharacterCount(str1, str2)); // 3

आउटपुट

3

व्याख्या

  • दोनों स्ट्रिंग्स को वर्ण सरणियों में विभाजित किया जाता है।
  • str1 के प्रत्येक वर्ण के लिए, जांचें कि क्या वह str2 में मौजूद है।
  • यदि हां, तो गणना बढ़ाएं और उस वर्ण को str2 से हटा दें ताकि उसका पुनः उपयोग न हो।
  • यह दृष्टिकोण डुप्लिकेट वर्णों को सही ढंग से संभालता है।

समय जटिलता: O(n*m) जहां n और m स्ट्रिंग्स की लंबाई हैं। बड़े इनपुट के लिए, आवृत्ति मानचित्र (frequency maps) का उपयोग करके O(n+m) में अनुकूलित किया जा सकता है।

  1. - JavaScript RegExp \s मेटाकैरेक्टर

    \s मेटाकैरेक्टर का उपयोग व्हाइटस्पेस कैरेक्टर खोजने के लिए किया जाता है। एक व्हाइटस्पेस कैरेक्टर हो सकता है - एक स्पेस कैरेक्टर एक टैब कैरेक्टर एक कैरिज रिटर्न कैरेक्टर एक न्यू लाइन कैरेक्टर एक वर्टिकल टैब कैरेक्टर एक फॉर्म फीड कैरेक्टर उदाहरण // कोई व्हाइटस्पेस नहीं कंटेन करता: console.log(/\s/.

  1. जावास्क्रिप्ट में टेम्पलेट स्ट्रिंग्स जावास्क्रिप्ट में टेम्पलेट स्ट्रिंग्स

    टेम्पलेट स्ट्रिंग्स को ES6 में एक स्ट्रिंग के अंदर एक्सप्रेशन एम्बेड करने की अनुमति देने के लिए पेश किया गया था। सिंगल कोट्स () या डबल कोट्स () के बजाय वे बैकटिक्स (``) का उपयोग करते हैं। वे स्ट्रिंग इंटरपोलेशन का एक बेहतर तरीका प्रदान करते हैं और एक्सप्रेशन को ${a+b} जैसे तरीके से एम्बेड किया जा स

  1. जावास्क्रिप्ट में नेस्टिंग टेम्पलेट स्ट्रिंग्स जावास्क्रिप्ट में नेस्टिंग टेम्पलेट स्ट्रिंग्स

    जावास्क्रिप्ट में नेस्टिंग टेम्पलेट स्ट्रिंग्स के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&g