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

सी # का उपयोग कर वर्णों को दोहराए बिना दिए गए स्ट्रिंग से सबसे लंबे समय तक सबस्ट्रिंग की लंबाई कैसे प्राप्त करें?


दिए गए स्ट्रिंग इनपुट से, 2 पॉइंटर्स i और j के साथ स्लाइडिंग विंडो तकनीक का उपयोग करें। i और j दोनों स्ट्रिंग में समान वर्ण को इंगित करेंगे। स्ट्रिंग के माध्यम से पार करें और इसे सूची में जोड़ें। यदि दोहराए गए वर्ण मिलते हैं तो उसे सूची से हटा दें अन्यथा सूची में जोड़ दें।

उदाहरण 1

इनपुट - s ="abcabcbb"

>आउटपुट -3

>स्पष्टीकरण - उत्तर "abc" है, जिसकी लंबाई 3 है।

उदाहरण 2

इनपुट - एस ="बीबीबीबीबी"

>आउटपुट - 1

>स्पष्टीकरण - उत्तर "बी" है, जिसकी लंबाई 1 है।

समय की जटिलता - ओ(एन)

अंतरिक्ष जटिलता - ओ(एन)

उदाहरण

public class Arrays{
   public int LongestSubstringWithNoRepeatingCharacters(string s){
      List<char> c = new List<char>();
      int iPointer = 0;
      int jpointer = 0;
      int max = 0;
      while (jpointer < s.Length){
         if (c.Contains(s[jpointer])){
            c.Remove(s[iPointer]);
            iPointer++;
         }
         else{
            max = Math.Max(c.Count(), max);
            c.Add(s[jpointer]);
            jpointer++;
         }
      }
      return max;
   }
}

static void Main(string[] args){
   int res = s.LongestSubstringWithNoRepeatingCharacters("abcabcbb");
   Console.WriteLine(res);
}

आउटपुट

2

  1. जावास्क्रिप्ट का उपयोग करके एक स्ट्रिंग में सबसे लंबे स्वर सबस्ट्रिंग की लंबाई ढूँढना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है। हमारे फ़ंक्शन को सबसे लंबे सन्निहित विकल्प की लंबाई लौटानी चाहिए जिसमें केवल स्वर हों। उदाहरण निम्नलिखित कोड है - { let cur =0 let max =0 for (let i =0; i आउटपुट 4

  1. सी भाषा का उपयोग करके किसी दिए गए स्ट्रिंग से स्वर कैसे हटाएं?

    दिए गए स्ट्रिंग से स्वरों को हटाने के लिए हम जिस तर्क का उपयोग करते हैं, वह इस प्रकार है - for(i=0; i<len; i++) //repeat until i<len{    if(str[i]=='a' || str[i]=='e' || str[i]=='i' || //checking to delete the vowels    str[i]=='o' || str[i]=

  1. C++ में दिए गए आरंभिक वर्णों में से सबसे लंबे क्रमागत पथ की लंबाई ज्ञात कीजिए

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