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

जावास्क्रिप्ट में इसके आकार को कम करने के लिए एन्कोडिंग स्ट्रिंग

<घंटा/>

समस्या

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

किसी विशेष स्ट्रिंग को एन्कोड करने का नियम है -

  • n[s], जहां वर्ग कोष्ठक के अंदर s को ठीक k बार दोहराया जा रहा है।

उदाहरण के लिए, ddd को 3 [d] में एन्कोड किया जा सकता है, लेकिन 3 [d] की लंबाई 4 है जबकि ddd केवल 3 वर्ण लंबा है इसलिए हमारे फ़ंक्शन को अंततः ddd वापस करना चाहिए।

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

const str = 'aabcaabcd';

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

const output = '2[aabc]d';

उदाहरण

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

const str = 'aabcaabcd';
function encode(s) {
   const { length } = s;
   const dp = Array(length).fill([]);
   dp.forEach((el, ind) => {
      dp[ind] = Array(length).fill(null);
   });
   for(let l = 1; l <= length; l++){
      for(let i = 0; i + l <= length; i++){
         let j = i + l - 1;
         dp[i][j] = s.substring(i, j + 1);
         for (let k = i; k < j ; k ++) {
            let acc = dp[i][k] + dp[k + 1][j];
            if (acc.length < dp[i][j].length) {
               dp[i][j] = acc;
            }
         }
         let sub = s.substring(i, j + 1);
         let double = sub + sub;
         let cut = double.indexOf(sub, 1);
         if (cut != -1 && cut < sub.length) {
            let acc = sub.length / cut + "[" + dp[i][i + cut - 1] +"]";
            if (acc.length < dp[i][j].length) {
               dp[i][j] = acc;
            }
         }
      }
   }
   let res = dp[0][dp.length - 1];
   return res;
}
console.log(encode(str));

आउटपुट

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

2[aabc]d

  1. जावास्क्रिप्ट का उपयोग करके एक स्ट्रिंग और इसकी लंबाई में लगातार सबसे लंबे दोहराव वाले चरित्र को खोजना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है। हमारे फ़ंक्शन को ठीक दो तत्वों की एक सरणी वापस करनी चाहिए, पहला तत्व वर्ण होगा जो स्ट्रिंग में लगातार सबसे अधिक बार प्रदर्शित करता है और दूसरा इसकी उपस्थिति की संख्या होगी। उदाहरण निम्नलिखित कोड है - const str = 'tdfdffddffs

  1. जावास्क्रिप्ट में वर्ण आवृत्ति के आधार पर एन्कोडिंग स्ट्रिंग

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक स्ट्रिंग, str को पहले और एकमात्र तर्क के रूप में लेता है। हमारे फ़ंक्शन को इनपुट स्ट्रिंग के आधार पर एक नई स्ट्रिंग बनानी चाहिए जहां नई स्ट्रिंग में प्रत्येक वर्ण ( यदि वह वर्ण मूल स्ट्रिंग में केवल एक बार दिखाई देता है, या ) यदि वह व

  1. पायथन में लंबाई एन्कोडिंग चलाएं

    इस ट्यूटोरियल में, हम सीखेंगे कि पायथन में रन-लेंथ एन्कोडिंग कैसे बनाई जाती है। एक स्ट्रिंग को देखते हुए चार और आवृत्ति वाली एक नई स्ट्रिंग लौटाएं। उदाहरण के लिए, स्ट्रिंग ट्यूटोरियल पॉइंट t3u1o2r1i2a1l1s1p1n1 के रूप में एन्कोड किया जाएगा . आदेश हर चार+आवृत्ति . है . उन सभी में शामिल हों और वापस ल