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

जावास्क्रिप्ट में एक स्ट्रिंग के भीतर सभी संभावित पैलिंड्रोमिक अनुक्रमों की गणना करना

<घंटा/>

पैलिंड्रोम अनुक्रम:

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

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग को पहले और एकमात्र तर्क के रूप में लेता है। इनपुट के रूप में ली गई स्ट्रिंग में केवल 'ए', 'बी', 'सी' और 'डी' शामिल होने की गारंटी है। हमारे फ़ंक्शन को स्ट्रिंग में दिखाई देने वाले सभी सन्निहित या गैर-सन्निहित पैलिंड्रोम अनुक्रमों की संख्या को गिनना और वापस करना चाहिए।

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

यदि इनपुट स्ट्रिंग है -

const str = 'bccb';

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

const output = 6;

क्योंकि यहां पैलिंड्रोम तार 'बी', 'सी', 'बीबी', 'सीसी', 'बीसीबी', 'बीसीसीबी' हैं

उदाहरण

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

const str = 'bccb';
const countPalindromes = (str = '') => {
   let base = 1000000007;
   const dp = Array(str.length).fill([]);
   for (let l = 1; l <= str.length; l ++) {
      for (let i = 0; i + l - 1 < str.length; i ++) {
         let j = i + l - 1;
         if (l === 1) {
            dp[i][j] = 1;
            continue;
         }
         if (l === 2) {
            dp[i][j] = 2;
            continue;
         }
         if (str[i] === str[j]) {
            let left = i + 1, right = j - 1;
            while (left <= right && str[left] != str[i]) {
               left ++;
            }
            while (left <= right && str[right] != str[i]) {
               right --;
            }
            if (left > right) {
               dp[i][j] = dp[i + 1][j - 1] * 2 + 2;
            }
            else if (left === right) {
               dp[i][j] = dp[i + 1][j - 1] * 2 + 1;
            } else {
               dp[i][j] = dp[i + 1][j - 1] * 2 - dp[left + 1][right - 1];
            }
         } else {
            dp[i][j] = dp[i][j - 1] + dp[i + 1][j] - dp[i + 1][j - 1];
         }
         dp[i][j] = dp[i][j] < 0? dp[i][j] + base : dp[i][j] % base;
      }
   }
   return dp[0][str.length - 1];
};
console.log(countPalindromes(str));

आउटपुट

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

6

  1. जावास्क्रिप्ट का उपयोग करके एक स्ट्रिंग से सभी रिक्त स्थान निकालना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक स्ट्रिंग लेता है और एक नया स्पेस फ्री स्ट्रिंग (एक स्ट्रिंग जिसमें सभी रिक्त स्थान को खाली स्ट्रिंग द्वारा प्रतिस्थापित किया जाता है) लौटाता है। उदाहरण निम्नलिखित कोड है - const str = 'some random string ex a m pl e'; const re

  1. जावास्क्रिप्ट में एक सरणी के भीतर संभावित एपी की गणना करना

    अंकगणितीय प्रगति अंकगणितीय प्रगति (AP) संख्याओं का एक ऐसा क्रम है कि किन्हीं दो क्रमागत संख्याओं का अंतर एक स्थिर मान (उर्फ सामान्य अंतर) होता है। उदाहरण के लिए, 1, 2, 3, 4, 5, 6,… एक AP है, जिसका सामान्य अंतर 1 (2 -1) के बराबर है। समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पूर्णांको

  1. सी ++ में दिए गए स्ट्रिंग में सभी पालिंड्रोमिक बाद की गणना करें

    इस ट्यूटोरियल में, हम किसी दिए गए स्ट्रिंग में सभी पैलिंड्रोमिक अनुक्रमों की संख्या को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक स्ट्रिंग प्रदान की जाएगी। हमारा कार्य उस दिए गए स्ट्रिंग में किए जा सकने वाले पैलिंड्रोमिक अनुक्रमों की संख्या ज्ञात करना है। उदाहरण #include<iostrea