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

जावास्क्रिप्ट में सबसे लंबी स्ट्रिंग श्रृंखला की लंबाई

<घंटा/>

वर्ड चेन

मान लें कि शब्द 1 शब्द 2 का पूर्ववर्ती है यदि और केवल तभी हम शब्द 1 में कहीं भी एक अक्षर जोड़ सकते हैं ताकि इसे शब्द 2 के बराबर बनाया जा सके। उदाहरण के लिए, "abc" "abac" का पूर्ववर्ती है।

शब्द शृंखला शब्दों का एक क्रम है [word_1, word_2, ..., word_k] k>=1 के साथ, जहां word_1, word_2 का पूर्ववर्ती है, word_2, word_3 का पूर्ववर्ती है, इत्यादि।

समस्या

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

सरणी गिरफ्तारी में प्रत्येक स्ट्रिंग में अंग्रेजी के लोअरकेस अक्षर होते हैं। हमारे फ़ंक्शन को दिए गए सरणी से चुने गए शब्दों के साथ शब्द श्रृंखला की सबसे लंबी संभव लंबाई लौटानी चाहिए, गिरफ्तारी।

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

const arr = ["a","b","ba","bca","bda","bdca"];

तब आउटपुट होना चाहिए -

const output = 4;

आउटपुट स्पष्टीकरण:

सबसे लंबी शब्द श्रृंखलाओं में से एक "a", "ba", "bda", "bdca" है।

उदाहरण

इसके लिए कोड होगा -

const arr = ["a","b","ba","bca","bda","bdca"];
const longestStrChain = (arr) => {
   arr.sort((a, b) => a.length - b.length);
   const isPredecessor = (word1 = '', word2 = '') => {
      if(Math.abs(word1.length - word2.length) !== 1){
         return false;
      };
      for(let i = 0; i < word2.length; i++){
         const word = word2.slice(0, i) + word2.slice(i + 1);
         if(word === word1){
            return true;
         };
      };
      return false;
   };
   const array = [];
   let max = 0;
   for(let i = arr.length - 1; i >= 0; i--){
      array[i] = 1;
      for(let j = arr.length - 1; j > i; j--){
         if(isPredecessor(arr[i], arr[j])){
            array[i] = Math.max(
               array[i],
               1 + array[j],
            );
         };
      };
      max = Math.max(max, array[i]);
   };
   return max;
};
console.log(longestStrChain(arr));

आउटपुट

और कंसोल में आउटपुट होगा -

4

  1. जावास्क्रिप्ट में सबसे छोटी अवर्गीकृत सरणी की लंबाई

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं की एक सरणी लेता है, एआर, पहले और एकमात्र तर्क के रूप में। हमारे फ़ंक्शन को एक सतत उप-सरणी की लंबाई खोजने की आवश्यकता है जैसे कि अगर हम केवल इस सबअरे को आरोही क्रम में सॉर्ट करते हैं, तो पूरे एरे को आरोही क्रम में भी सॉर्ट किया जाएगा।

  1. जावास्क्रिप्ट में लगातार सबसे लंबे समय तक जुड़ने का पता लगाना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं के जोड़े की एक सरणी लेता है, एआर, पहले और एकमात्र तर्क के रूप में। प्रत्येक जोड़ी में, पहली संख्या हमेशा दूसरी संख्या से छोटी होती है। अब, हम एक युग्म (c, d) को परिभाषित करते हैं जो किसी अन्य युग्म (a, b) का अनुसरण कर सकता है यदि और

  1. C++ में सबसे लंबी स्ट्रिंग चेन

    =1 के साथ, जहां word_1, word_2 का पूर्ववर्ती है, word_2, word_3 का पूर्ववर्ती है, और इसी तरह। हमें शब्दों की दी गई सूची से चुने गए शब्दों के साथ एक शब्द श्रृंखला की सबसे लंबी संभव लंबाई ढूंढनी है। तो अगर इनपुट इस तरह है:[ए, बी, बीए, बीसीए, बीडीए, बीडीसीए], तो परिणाम 4 होगा, क्योंकि सबसे लंबी श्रृंख