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

पायथन में दो विशिष्ट तत्वों वाले सबसे लंबे सबस्ट्रिंग की लंबाई खोजने का प्रोग्राम


मान लीजिए हमारे पास एक स्ट्रिंग s है, हमें सबसे लंबे सबस्ट्रिंग की लंबाई ढूंढनी है जिसमें अधिकतम 2 विशिष्ट वर्ण हों।

इसलिए, यदि इनपुट s = "xyzzy" जैसा है, तो आउटपुट 4 होगा, क्योंकि "yzzy" अधिकतम 2 अद्वितीय वर्णों वाला सबसे लंबा सबस्ट्रिंग है।

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

  • start := 0

  • c := एक मैप

  • ans := 0

  • end के लिए 0 से s के आकार तक की रेंज में, करें

    • c[s[end]] := c[s[end]] + 1

    • जब तक c का आकार > 2, करें

      • c[s[start]] := c[s[start]] - 1


      • यदि c[s[start]], 0 है, तो

        • c[s[start]] हटाएं

      • start := start + 1

    • ans := ans और (end - start + 1) का अधिकतम

  • ans वापस करें

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

उदाहरण

class Solution:    def solve(self, s):       from collections import Counter       start = 0       c = Counter()       ans = 0       for end in range(len(s)):          c[s[end]] += 1          while len(c) > 2:             c[s[start]] -= 1             if not c[s[start]]:                del c[s[start]]             start += 1          ans = max(ans, end - start + 1)       return ans ob = Solution() s = "xyzzy" print(ob.solve(s))

इनपुट

s = "xyzzy"

आउटपुट

4

  1. पायथन में n-ary ट्री में सबसे लंबे पथ की लंबाई खोजने का प्रोग्राम पायथन में n-ary ट्री में सबसे लंबे पथ की लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक एज लिस्ट है जहां प्रत्येक आइटम (u, v) रखता है जो दर्शाता है कि u, v का पैरेंट है। हमें ट्री में सबसे लंबे पथ की लंबाई ढूंढनी है। पथ की लंबाई 1 + उस पथ में नोड्स की संख्या है। उदाहरण के लिए, यदि इनपुट है: तो आउटपुट 5 होगा, क्योंकि पथ [1, 4, 5, 7] है, कुल 4 नोड्स हैं, इसलिए पथ

  1. पायथन में बाइनरी ट्री में दो तत्वों के सामान्य पूर्वज को खोजने का प्रोग्राम पायथन में बाइनरी ट्री में दो तत्वों के सामान्य पूर्वज को खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, और हमारे पास दो संख्याएं a और b भी हैं, हमें उस सबसे निचले नोड का मान ढूंढना है जिसमें a और b वंशज के रूप में हैं। हमें ध्यान रखना है कि एक नोड स्वयं का वंशज हो सकता है।इसलिए, यदि इनपुट इस तरह हैa = 6, b = 2, तो आउटपुट 4 होगा।इसे हल करने के लिए, हम इन चरणों का

  1. पायथन प्रोग्राम: जांचें कि कोई संख्या दो की घात है या नहीं पायथन प्रोग्राम: जांचें कि कोई संख्या दो की घात है या नहीं

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक संख्या n दिए जाने पर, हमें जांचना होगा कि दी गई संख्या दो की घात है या नहीं। दृष्टिकोण इनपुट नंबर को दो से विभाजित करते रहें, यानी n/2 इटरेटिवली। प्रत्येक इटरेशन में जांचें, यदि