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

जावास्क्रिप्ट में सरणी में सबसे लंबे समय तक सबस्ट्रिंग असामान्य ढूँढना

<घंटा/>

अनुवर्ती

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

समस्या

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

सबसे लंबे समय तक असामान्य अनुक्रम से हमारा मतलब है, सरणी में किसी एक स्ट्रिंग का सबसे लंबा अनुक्रम और यह बाद में सरणी में अन्य स्ट्रिंग्स का कोई भी क्रम नहीं होना चाहिए।

यदि कोई असामान्य अनुवर्ती मौजूद नहीं है, तो हमें -1 लौटना चाहिए।

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

const arr = ["aba", "cdc", "eae"];

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

const output = 3;

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

"एबीए", "सीडीसी" और "ईएई" लंबाई 3 के सभी मान्य असामान्य अनुवर्ती हैं।

उदाहरण

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

const arr = ["aba", "cdc", "eae"];
const longestUncommon = (strs) => {
   const map = {};
   const arr = [];
   let max = -1;
   let index = -1;
   for(let i = 0; i < strs.length; i++){
      map[strs[i]] = (map[strs[i]] || 0) + 1;
      if(map[strs[i]] > 1){
         if(max < strs[i].length){
            max = strs[i].length
            index = i;
         }
      }
   }
   if(index === -1) {
      strs.forEach(el =>{
         if(el.length > max) max = el.length;
      })
      return max;
   }
   for(let i = 0; i < strs.length; i++){
      if(map[strs[i]] === 1) arr.push(strs[i]);
   }
   max = -1
   for(let i = arr.length - 1; i >= 0; i--){
      let l = arr[i];
      let d = 0;
      for(let j = 0; j < strs[index].length; j++){
         if(strs[index][j] === l[d]){
            d++;
         }
      }
      if(d === l.length){
         let temp = arr[i];
         arr[i] = arr[arr.length - 1];
         arr[arr.length - 1] = temp;
         arr.pop();
      }
   }
   arr.forEach(el =>{
      if(el.length > max) max = el.length;
   })
   return max;
};
console.log(longestUncommon(arr));

आउटपुट

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

3

  1. कैसे जावास्क्रिप्ट में एक सरणी की लंबाई खोजने के लिए?

    किसी सरणी की लंबाई ज्ञात करने के लिए, JavaScript लंबाई गुण का उपयोग करें। जावास्क्रिप्ट सरणी लंबाई गुण एक अहस्ताक्षरित, 32-बिट पूर्णांक देता है जो एक सरणी में तत्वों की संख्या निर्दिष्ट करता है। उदाहरण आप किसी सरणी की लंबाई ज्ञात करने के लिए निम्न कोड को चलाने का प्रयास कर सकते हैं - <html> &

  1. जावास्क्रिप्ट ऐरे लंबाई संपत्ति

    ऐरे लेंथ प्रॉपर्टी एक ऐरे की लंबाई सेट या लौटाती है जो दिए गए एरे में मौजूद कुल तत्वों की संख्या है। सरणी लंबाई गुण के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना { फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500; }JavaScript Array लंबाई

  1. जावास्क्रिप्ट - सरणी वस्तुओं की लंबाई

    जावास्क्रिप्ट में लंबाई संपत्ति वस्तु का आकार लौटाती है। स्ट्रिंग और सरणी ऑब्जेक्ट की लंबाई के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना, .परिणाम {फ़ॉन्ट-आकार:18पीएक्स; फ़ॉन्ट-वजन:500; लाल रंग; }जावास्क्रिप्ट लंबाई गुणयहा