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

पायथन में एक स्ट्रिंग और उसके प्रत्यय के बीच समानता का पता लगाने का कार्यक्रम

मान लीजिए, हमें एक स्ट्रिंग 'input_str' दी गई है। यदि हम सभी प्रत्ययों को input_str से निर्धारित करते हैं; उदाहरण के लिए यदि स्ट्रिंग 'abcd' है, तो प्रत्यय 'abc', 'bcd', 'cd', 'd' हैं। अब, हम input_str और सभी प्रत्ययों के बीच की समानता की जाँच input_str और प्रत्यय में सबसे लंबे सामान्य उपसर्ग की लंबाई से करते हैं। input_str और सभी प्रत्ययों के बीच समानता का योग वापस करना होगा।

इसलिए, यदि इनपुट input_str ='tpotp' जैसा है, तो आउटपुट 7

. होगा

स्ट्रिंग 'tpotp' के सभी प्रत्यय 'tpotp', 'potp', 'otp', 'tp' और 'p' हैं।

अगर हम input_str के साथ सभी प्रत्ययों की समानता की जांच करते हैं, तो हमें -

. मिलता है
'tpotp' similarity 5
'potp' similarity 0
'otp' similarity 0
'tp' similarity 2
'p' similarity 0

Sum of similarities = 5 + 0 + 0 + 2 + 0 = 7.

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • return_list :=एक नई सूची जिसमें input_str का आकार शामिल है
  • मैं :=1
  • p :=0
  • q :=0
  • r :=0
  • जबकि मैं
  • यदि q
  • अगर वापसी_सूची[i-q]>=q+p-i, तो
    • r :=q + p - i
    • p :=0
    • q :=0
  • अन्यथा,
    • रिटर्न_लिस्ट [i-q] को रिटर्न_लिस्ट के अंत में डालें
    • i :=i + 1
    • r :=0
  • अन्यथा,
    • जबकि (i + r
    • r :=r + 1
  • रिटर्न_लिस्ट के अंत में r डालें
  • p :=r
  • q:=मैं
  • i :=i + 1
  • r :=0
  • रिटर्न_लिस्ट से तत्वों का रिटर्न योग
  • उदाहरण

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

    def solve(input_str):
       return_list = [len(input_str)]
       i = 1
       p, q = 0,0
       r = 0
       while i < len(input_str):
          if q < i < (q+p):
             if return_list[i-q] >= q+p-i:
                r = q + p - i
                p, q = 0, 0
             else:
                return_list.append(return_list[i-q])
                i += 1
                r = 0
          else:
             while i + r < len(input_str) and input_str[r] == input_str[i+r]:
                r += 1
             return_list.append(r)
             p,q = r,i
             i += 1
             r = 0
          return sum(return_list)
    
    print(solve('tpotp'))

    इनपुट

    'tpotp'

    आउटपुट

    5

    1. यह पता लगाने के लिए कार्यक्रम कि क्या पायथन में सभी के द्वारा ग्राफ़ को ट्रैवर्स किया जा सकता है

      मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्षों की संख्या 0 से n - 1 है। ग्राफ अप्रत्यक्ष है और प्रत्येक किनारे का वजन है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को पार कर सकता

    1. पायथन में एक ग्राफ में महत्वपूर्ण और छद्म-महत्वपूर्ण किनारों का पता लगाने का कार्यक्रम

      मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्षों की संख्या 0 से n -1 है। ग्राफ अप्रत्यक्ष है और प्रत्येक किनारे का वजन होता है। तो ग्राफ को देखते हुए, हमें ग्राफ एमएसटी में महत्वपूर्ण और छद्म-महत्वपूर्ण किनारों का पता लगाना होगा। एक किनारे को एक महत्वपूर्ण किनारा कहा जाता है यदि उस किनारे को हट

    1. सबसे अधिक होने वाले चरित्र और उसकी गिनती को खोजने के लिए पायथन कार्यक्रम

      इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट स्ट्रिंग को देखते हुए हमें सबसे अधिक होने वाले चरित्र और उसकी गिनती को खोजने की जरूरत है। दृष्टिकोण काउंटर पद्धति का उपयोग करके एक शब्दकोश बनाएं जिसमें स्ट्रिंग्स कुंजी के रूप में हों