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

सी ++ में अद्वितीय वर्णों के साथ एक समेकित स्ट्रिंग की अधिकतम लंबाई

मान लीजिए कि हमारे पास स्ट्रिंग्स की एक सरणी है। स्ट्रिंग एस गिरफ्तारी के उप-अनुक्रम का एक संयोजन है जिसमें अद्वितीय वर्ण हैं। s की अधिकतम संभव लंबाई ज्ञात कीजिए। यदि इनपुट ["चा", "आर", "एक्ट", "इर्स"] जैसा है, तो आउटपुट 6 होगा, संभावित समाधान "चेयर्स" और "एक्टर्स" हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • ठीक () नामक एक विधि बनाएं और इसमें स्ट्रिंग्स और t लगेंगे। यह नीचे की तरह काम करेगा
  • एक नक्शा x बनाएं
  • i के लिए 0 से s के आकार के बीच
    • x[s[i]] को 1 से बढ़ाएं
    • अगर x[s[i]]> 1, तो झूठी वापसी करें
  • i के लिए 0 से t के आकार की सीमा में
    • x[t[i]] को 1 से बढ़ाएं
    • अगर x[t[i]]> 1, तो झूठी वापसी करें
  • सही लौटें
  • वास्तविक विधि नीचे की तरह दिखाई देगी -
  • v नामक स्ट्रिंग्स की एक सरणी बनाएं, और उत्तर:=0, v में एक खाली स्ट्रिंग डालें
  • मैं के लिए 0 से लेकर गिरफ्तारी के आकार तक
    • n :=v का आकार
    • जे के लिए 0 से n - 1 की सीमा में
      • अगर ठीक है(v[j], arr[i]) सच है, तो
        • t :=v[j] + arr[i]
        • v में t डालें
        • उत्तर:=अधिकतम उत्तर और टी का आकार
  • वापसी उत्तर

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   bool ok(string s, string t){
      map <char, int > x;
      for(int i = 0; i < s.size(); i++){
         x[s[i]]++;
         if(x[s[i]] >1)return false;
      }
      for(int i = 0; i < t.size(); i++){
         x[t[i]]++;
         if(x[t[i]]>1)return false;
      }
      return true;
   }
   int maxLength(vector<string>& arr) {
      vector <string> v;
      int ans = 0;
      v.push_back("");
      for(int i = 0; i < arr.size(); i++){
         int n = v.size();
         for(int j = 0; j < n; j++){
            if(ok(v[j],arr[i])){
               string t = v[j]+arr[i];
               v.push_back(t);
               ans = max(ans,(int)t.size());
            }
         }
      }
      return ans;
   }
};
main(){
   vector<string> v = {"cha","r","act","ers"};
   Solution ob;
   cout << (ob.maxLength(v));
}

इनपुट

["cha","r","act","ers"]

आउटपुट

6

  1. पायथन में अद्वितीय पात्रों की श्रृंखलाबद्ध स्ट्रिंग की लंबाई खोजने के लिए कार्यक्रम?

    मान लीजिए हमारे पास स्ट्रिंग शब्दों की एक सूची है। हमें एक स्ट्रिंग बनानी है जो शब्दों के बाद के क्रम को जोड़कर बनाई गई है जैसे कि प्रत्येक अक्षर अद्वितीय है। हमें अंत में इस तरह के सबसे लंबे संयोजन की लंबाई का पता लगाना होगा। इसलिए, यदि इनपुट शब्द =[xyz, xyw, wab, cde] जैसा है, तो आउटपुट 9 होगा, क

  1. पायथन प्रोग्राम में असामान्य वर्णों के साथ संयोजित स्ट्रिंग

    हमने दो तार दिए हैं और हमारा लक्ष्य एक नई स्ट्रिंग प्राप्त करना है जिसमें दोनों तारों से अद्वितीय वर्ण हों। मान लीजिए, अगर हमारे पास दो तार हैं हफीज और करीम फिर, दो स्ट्रिंग्स से उत्पन्न होने वाली नई स्ट्रिंग hfzkrm . है . हम दो स्ट्रिंग्स से अलग-अलग कैरेक्टर प्राप्त करने का लक्ष्य रखते हैं। मेरे चर

  1. पाइथन में असामान्य वर्णों के साथ संयोजित स्ट्रिंग?

    यहां दो तार दिए गए हैं, पहले हमें पहली स्ट्रिंग से सभी सामान्य तत्व को हटाना होगा और दूसरी स्ट्रिंग के असामान्य वर्णों को पहली स्ट्रिंग के असामान्य तत्व के साथ जोड़ना होगा। उदाहरण Input >> first string::AABCD Second string:: MNAABP Output >> CDMNP एल्गोरिदम Uncommonstring(s1,s2) /* s1