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

पायथन में वर्णों को दोहराए बिना सबसे लंबा सबस्ट्रिंग


मान लीजिए कि हमारे पास एक स्ट्रिंग है। हमें पात्रों को दोहराए बिना सबसे लंबा विकल्प खोजना होगा। तो अगर स्ट्रिंग "ABCABCBB" की तरह है, तो परिणाम 3 होगा, क्योंकि एक सबस्ट्रिंग है जो दोहरा रही है, लंबाई 3 की है। वह "एबीसी" है।

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

  • सेट i :=0, j :=0, जानकारी स्टोर करने के लिए एक मैप सेट करें
  • उत्तर:=0
  • जबकि j <स्ट्रिंग की लंबाई s
    • यदि s[j] मानचित्र में मौजूद नहीं है, या i> map[s[j]], तो
      • उत्तर :=अधिकतम (उत्तर, जे - i + 1)
      • नक्शा[s[j]] :=j
    • अन्यथा
      • i :=map[s[j]] + 1
      • उत्तर :=अधिकतम (उत्तर, जे - i + 1)
      • j को 1 से घटाएं
    • j को 1 से बढ़ाएं
  • वापसी उत्तर

उदाहरण (पायथन)

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

class Solution(object):
   def lengthOfLongestSubstring(self, s):
      i =0
      j = 0
      d={}
      ans = 0
      while j < len(s):
         if s[j] not in d or i>d[s[j]]:
            ans = max(ans,(j-i+1))
            d[s[j]] = j
         else:
            i = d[s[j]]+1
            ans = max(ans,(j-i+1))
            j-=1
         #print(ans)
         j+=1
      return ans
ob1 = Solution()
print(ob1.lengthOfLongestSubstring("ABCABCBB"))

इनपुट

"ABCABCBB"

आउटपुट

3

  1. पायथन में सबसे लंबा पालिंड्रोमिक सबस्ट्रिंग

    मान लीजिए कि हमारे पास एक स्ट्रिंग S है। हमें S में सबसे लंबी पैलिंड्रोमिक सबस्ट्रिंग ढूंढनी है। हम मान रहे हैं कि स्ट्रिंग S की लंबाई 1000 है। इसलिए यदि स्ट्रिंग BABAC है , तो सबसे लंबा पैलिंड्रोमिक सबस्ट्रिंग “BAB” है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे स्ट्रिंग की लंबाई के समान क्रम

  1. असीसी () अजगर में

    ASCII को अमेरिकन स्टैंडर्ड कोड फॉर इंफॉर्मेशन इंटरचेंज से संक्षिप्त किया गया है। यह एक वर्ण एन्कोडिंग मानक है। उदाहरण के लिए अंग्रेजी वर्णमाला A का ASCII मान 65 है। पायथन किसी वस्तु का मुद्रण योग्य प्रतिनिधित्व प्राप्त करने के लिए यह फ़ंक्शन प्रदान करता है। यह एक पैरामीटर लेता है जो एक वस्तु है जो ए

  1. सबसे लंबे समय तक सामान्य सबस्ट्रिंग के लिए पायथन में सीक्वेंसमैचर।

    दो स्ट्रिंग्स को देखते हुए, हमारा काम सबसे लंबी कॉमन सब-स्ट्रिंग को प्रिंट करना है। हम SequenceMatcher.find_longest_match () विधि का उपयोग करके अजगर में समस्या का समाधान करेंगे। Class difflib.SequenceMatcher किसी भी प्रकार के अनुक्रमों के जोड़े की तुलना करने के लिए एक लचीला वर्ग है, जब तक कि अनुक्र