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

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


शब्द श्रृंखला

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

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

समस्या

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

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

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

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. - JavaScript में सबसे छोटी अनसॉर्टेड सरणी की लंबाई

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

  1. - JavaScript में सबसे लंबी लगातार जोड़ श्रृंखला ढूंढना

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

  1. - C++ में लॉन्गेस्ट स्ट्रिंग चेन (Longest String Chain)

    मान लीजिए हमारे पास शब्दों की एक सूची है, जहां प्रत्येक शब्द लोअरकेस अक्षरों से बना है। एक शब्द word1 दूसरे शब्द word2 का पूर्ववर्ती (predecessor) होता है यदि और केवल यदि हम word1 में कहीं भी ठीक एक अक्षर जोड़कर इसे word2 के बराबर बना सकते हैं। उदाहरण के लिए, abc, abac का पूर्ववर्ती है। एक शब्द श्र