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

पायथन में सबसे लंबा सामान्य उपसर्ग


मान लीजिए हमारे पास एक सरणी में स्ट्रिंग्स का एक समूह है। हमें सरणी में स्ट्रिंग्स के बीच सबसे लंबा सामान्य उपसर्ग ढूंढना है। यहां हम मान लेंगे कि सभी स्ट्रिंग्स लोअरकेस स्ट्रिंग्स हैं। और यदि कोई सामान्य उपसर्ग नहीं है, तो "" वापस करें।

इसलिए यदि स्ट्रिंग्स की सरणी ["school", "schedule","scotland"] जैसी है, तो सबसे लंबा सामान्य उपसर्ग "sc" है क्योंकि यह इन सभी स्ट्रिंग्स में मौजूद है।

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

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

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

class Solution(object):
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        if len(strs) == 0:
            return ""
        current = strs[0]
        for i in range(1,len(strs)):
            temp = ""
            if len(current) == 0:
                break
            for j in range(len(strs[i])):
                if j<len(current) and current[j] == strs[i][j]:
                    temp+=current[j]
                else:
                    break
            current = temp
        return current

input_list = ["school","schedule","scotland"]
ob1 = Solution()
print(ob1.longestCommonPrefix(input_list))

इनपुट

["school","schedule","scotland"]

आउटपुट

"sc"

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

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

  1. - पायथन में स्ट्रिंग में सबसे लंबी दोहराव वाली सीक्वेंस कैसे खोजें

    आप प्रत्येक स्थिति से शुरू होने वाली प्रत्येक सबस्ट्रिंग की गिनती के लिए defaultdict का उपयोग कर सकते हैं। getsubs मेथड एक जेनरेटर मेथड है जो हर बार कॉल किए जाने पर एक छोटी सबस्ट्रिंग देता है। उदाहरण = 2] if filtered: maxkey = max(filtered, key=len) # सबसे लंबी स्ट्रिंग खोजें re

  1. - पायथन में स्ट्रिंग की लंबाई कैसे प्राप्त करें?

    पायथन में len() नामक एक मेथड होता है जो हमें किसी भी कंपोजिट ऑब्जेक्ट की लंबाई देता है। स्ट्रिंग की लंबाई प्राप्त करने के लिए, बस स्ट्रिंग को len() कॉल में पास करें। उदाहरण के लिए, print(len(abcdefghijklmnopqrstuvwxyz)) आउटपुट: 26