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

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


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

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

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

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

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

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.find_longest_match () विधि का उपयोग करके अजगर में समस्या का समाधान करेंगे। Class difflib.SequenceMatcher किसी भी प्रकार के अनुक्रमों के जोड़े की तुलना करने के लिए एक लचीला वर्ग है, जब तक कि अनुक्र

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

    आप इनपुट स्ट्रिंग में प्रत्येक स्थिति से शुरू होने वाले प्रत्येक उप स्ट्रिंग का मिलान करने के लिए डिफॉल्टडिक्ट का उपयोग कर सकते हैं। गेटसब विधि एक जनरेटर विधि है जो हर बार कॉल करने पर एक छोटी उप स्ट्रिंग उत्पन्न करती है। उदाहरण from collections import defaultdict def getsubs(loc, s):     s

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

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