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

Python में दो समान कैरेक्टर्स के बीच सबसे बड़ा सबस्ट्रिंग खोजें

मान लीजिए हमारे पास एक स्ट्रिंग s है, हमें दो समान अक्षरों या तत्वों के बीच सबसे लंबे सबस्ट्रिंग की लंबाई ढूंढनी है, उन दो कैरेक्टर्स को छोड़कर। यदि हम ऐसा सबस्ट्रिंग नहीं ढूंढ सकते, तो -1 वापस करें।

इसलिए, यदि इनपुट है: s = "level", तो आउटपुट 3 होगा क्योंकि इष्टतम सबस्ट्रिंग या तो "lev" या "vel" हो सकते हैं।

हल करने के चरण

  • memo := एक नया मैप
  • i को 0 से s के आकार - 1 तक के लिए:
    • यदि s[i], memo में है, तो i को memo[s[i]] के अंत में डालें
    • अन्यथा, memo[s[i]] := केवल i तत्व वाली सूची
  • best := 0
  • memo में प्रत्येक key के लिए: best := max(best, memo[key][-1] - memo[key][0])
  • best - 1 वापस करें

उदाहरण (Python)

def solve(s):
    memo = {}
    for i in range(len(s)):
        if s[i] in memo:
            memo[s[i]].append(i)
        else:
            memo[s[i]] = [i]
    best = 0
    for key in memo:
        best = max(best, memo[key][-1] - memo[key][0])
    return best - 1

s = "level"
print(solve(s))

इनपुट

"level"

आउटपुट

3
  1. - पायथन में दो टाइमस्टैम्प के बीच का अंतर खोजने का प्रोग्राम

    मान लीजिए हमारे पास इस प्रारूप में दो समय हैं Day dd Mon yyyy hh:mm:ss +/-xxxx, जहां Day तीन अक्षरों वाला दिन है जिसका पहला अक्षर अपरकेस में है। Mon तीन अक्षरों में महीने का नाम है और अंत में + या - xxxx टाइमज़ोन को दर्शाता है उदाहरण के लिए +0530 इंगित करता है कि यह GMT से 5 घंटे 30 मिनट अधिक है (dd

  1. - पायथन में दो सूचियों का कार्टेशियन उत्पाद खोजने का प्रोग्राम

    मान लीजिए हमारे पास डेटा की दो सूचियां l1 और l2 हैं। हमें इन दो सूचियों का कार्टेशियन उत्पाद ढूंढना है। जैसा कि हम जानते हैं यदि दो सूचियां (a, b) और (c, d) की तरह हैं तो कार्टेशियन उत्पाद {(a, c), (a, d), (b, c), (b, d)} होगा। ऐसा करने के लिए हम itertools लाइब्रेरी का उपयोग करेंगे और इस लाइब्रेरी म

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

    मान लीजिए हमें एक बाइनरी ट्री दिया गया है और हमें बाइनरी ट्री में दो नोड्स के बीच की दूरी ढूंढनी है। हम दो नोड्स के बीच के एज को ग्राफ की तरह ढूंढते हैं और उनके बीच एज की संख्या या दूरी वापस करते हैं। ट्री के नोड की संरचना नीचे दी गई है: data: right: left: उदाहरण के लिए, यदि इनपुट है: और जिन नो