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

पायथन में सबसे लंबे समय तक लगातार अक्षर और अंक सबस्ट्रिंग खोजें

दी गई स्ट्रिंग अंकों और अक्षरों का मिश्रण हो सकती है। इस लेख में हमें सबसे बड़ा सबस्ट्रिंग खोजने की आवश्यकता है जिसमें अक्षर और अंक एक साथ हों।

पुनः मॉड्यूल के साथ

रेगुलर एक्सप्रेशन मॉड्यूल का उपयोग अंकों या अक्षरों वाले सभी निरंतर सबस्ट्रिंग को खोजने के लिए किया जा सकता है। फिर हम अक्षरों और अंकों के केवल उन निरंतर सबस्ट्रिंग को चुनने के लिए अधिकतम फ़ंक्शन लागू करते हैं जिनकी सभी सबस्ट्रिंग्स में अधिकतम लंबाई होती है। फाइंडऑल फ़ंक्शन का उपयोग आवश्यक सबस्ट्रिंग को पहचानने और प्राप्त करने के लिए भी किया जाता है।

उदाहरण

import re

def longSubstring(str):
   letter = max(re.findall(r'\D+', str), key=len)
   digit = max(re.findall(r'\d+', str), key=len)

   return letter, digit

str = 'Hello 459 Congratulations! 234'
print(longSubstring(str))

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

(' Congratulations! ', '459')

लेन() और जबकि लूप के साथ

यह एक सीधा लेकिन धीमा तरीका है जिसमें हम दिए गए स्ट्रिंग में सबस्ट्रिंग के रूप में मौजूद अंकों और अक्षरों की लंबाई की जांच करने के लिए लूप के दौरान डिज़ाइन करते हैं। फिर हम उनकी लंबाई की तुलना करते हैं और केवल अधिकतम लंबाई वाले सबस्ट्रिंग चुनते हैं।

उदाहरण

def longSubstring(s):
   max_letterSeq = ''
   max_digitSeq = ''
   i = 0
   while (i < len(s)):

      current_letterSeq = ''
      current_digitSeq = ''

      # Letters
      while (i < len(s) and s[i].isalpha()):
         current_letterSeq += s[i]
         i += 1

      # Digits
      while (i < len(s) and s[i].isdigit()):
         current_digitSeq += s[i]
         i += 1

      # Check if not digit or alphabet
      if (i < len(s) and not (s[i].isdigit())
            and not (s[i].isalpha())):
         i += 1

      if (len(current_letterSeq) > len(max_letterSeq)):
         max_letterSeq = current_letterSeq

      if (len(current_digitSeq) > len(max_digitSeq)):
         max_digitSeq = current_digitSeq

   return max_letterSeq, max_digitSeq

str = 'Hello 459 Congratulations! 234'
print(longSubstring(str))

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

('Congratulations', '459')

  1. अजगर में एक बाइनरी ट्री के सबसे लंबे क्रमागत पथ की लंबाई ज्ञात करने का कार्यक्रम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें बाइनरी ट्री में सबसे लंबा रास्ता खोजना होगा। तो, अगर इनपुट पसंद है तो आउटपुट 5 होगा क्योंकि लगातार सबसे लंबा क्रम [2, 3, 4, 5, 6] है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - यदि रूट रिक्त है, तो वापसी 0 मैक्सपाथ:=0 एक फंक्शन हेल्पर () को प

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

    मान लीजिए कि हमारे पास एक स्ट्रिंग है जो हमें सबसे लंबे संभव सबस्ट्रिंग को वापस करना है जिसमें अद्वितीय वर्णों की संख्या k है, यदि सबसे लंबी संभव लंबाई के एक से अधिक सबस्ट्रिंग हैं, तो उनमें से किसी को वापस कर दें। इसलिए, यदि इनपुट s =ppqprqtqtqt, k =3 जैसा है, तो आउटपुट rqtqtqt होगा क्योंकि इसकी

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

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