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

जावास्क्रिप्ट में लेवेनशेटिन दूरी

<घंटा/>

लेवेनशेटिन दूरी

लेवेनशेटिन दूरी दो अनुक्रमों के बीच अंतर को मापने के लिए एक स्ट्रिंग मीट्रिक है। यह एक शब्द को दूसरे में बदलने के लिए आवश्यक एकल-वर्ण संपादन की न्यूनतम संख्या है।

उदाहरण के लिए -

गौर कीजिए, हमारे पास ये दो तार हैं -

const str1 = 'hitting';
const str2 = 'kitten';

इन दो तारों के बीच लेवेनशेटिन की दूरी 3 है क्योंकि हमें ये तीन संपादन करने की आवश्यकता है -

  • बिल्ली का बच्चा → हिटन ("के" के लिए "एच" का प्रतिस्थापन)

  • हिटन → हिटिन ("ई" के लिए "i" का प्रतिस्थापन)

  • हिटिन → हिटिंग (अंत में "g" डालें)

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो दो स्ट्रिंग्स लेता है और उनके बीच लेवेनशेटिन दूरी की गणना करता है।

उदाहरण

निम्नलिखित कोड है -

const str1 = 'hitting';
const str2 = 'kitten';
const levenshteinDistance = (str1 = '', str2 = '') => {
   const track = Array(str2.length + 1).fill(null).map(() =>
   Array(str1.length + 1).fill(null));
   for (let i = 0; i <= str1.length; i += 1) {
      track[0][i] = i;
   }
   for (let j = 0; j <= str2.length; j += 1) {
      track[j][0] = j;
   }
   for (let j = 1; j <= str2.length; j += 1) {
      for (let i = 1; i <= str1.length; i += 1) {
         const indicator = str1[i - 1] === str2[j - 1] ? 0 : 1;
         track[j][i] = Math.min(
            track[j][i - 1] + 1, // deletion
            track[j - 1][i] + 1, // insertion
            track[j - 1][i - 1] + indicator, // substitution
         );
      }
   }
   return track[str2.length][str1.length];
};
console.log(levenshteinDistance(str1, str2));

आउटपुट

कंसोल पर आउटपुट निम्न है -

3

  1. जावास्क्रिप्ट रैंडम

    Math.random() फ़ंक्शन का उपयोग 0 और 1 के बीच एक यादृच्छिक फ़्लोटिंग-पॉइंट संख्या उत्पन्न करने के लिए किया जाता है। Math.random() फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="

  1. जावास्क्रिप्ट वादे

    जावास्क्रिप्ट में वादे हमें अतुल्यकालिक संचालन करने की अनुमति देते हैं जहां मूल्य उन्नत में ज्ञात नहीं होता है जब वादा बनाया जा रहा था। एक वादे में तीन राज्य लंबित, पूरे और अस्वीकृत हो सकते हैं। जावास्क्रिप्ट में वादों के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en&q

  1. जावास्क्रिप्ट कमजोर सेट

    जावास्क्रिप्ट वीकसेट का उपयोग वस्तुओं के संग्रह को संग्रहीत करने के लिए किया जाता है। सेट की तरह यह डुप्लीकेट स्टोर नहीं करता है। वीकसेट के तरीके - विधि विवरण जोड़ें(obj) कमजोर सेट में नया मान जोड़ें। हटाएं(obj) कमजोरसेट से मान हटाता है। है(obj) कमजोरसेट ऑब्जेक्ट में मान है या नहीं, इसके आध