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

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


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

re मॉड्यूल के साथ

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

उदाहरण

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')

len() और While Loop के साथ

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

उदाहरण

def longSubstring(s):
    max_letterSeq = ''
    max_digitSeq = ''
    i = 0
    while i < len(s):
        current_letterSeq = ''
        current_digitSeq = ''
        # अक्षर
        while i < len(s) and s[i].isalpha():
            current_letterSeq += s[i]
            i += 1
        # अंक
        while i < len(s) and s[i].isdigit():
            current_digitSeq += s[i]
            i += 1
        # जांचें यदि न तो अंक और न ही वर्णमाला
        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. Python में बाइनरी ट्री के सबसे लंबे लगातार पथ की लंबाई खोजने का प्रोग्राम Python में बाइनरी ट्री के सबसे लंबे लगातार पथ की लंबाई खोजने का प्रोग्राम

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

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

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

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

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