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

Python में एक वर्ण से भिन्न सबस्ट्रिंग्स की गिनती करने का प्रोग्राम


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

उदाहरण के लिए, यदि इनपुट है s = "sts", t = "tsts", तो आउटपुट 6 होगा क्योंकि s और t के सबस्ट्रिंग्स के निम्नलिखित जोड़े हैं जो 1 वर्ण से भिन्न हैं:

  • ("sts", "tsts"),
  • ("sts", "tsts"),
  • ("sts", "tsts"),
  • ("sts", "tsts"),
  • ("sts", "tsts"),
  • ("sts", "tsts")
बोल्ड वर्ण भाग वे सबस्ट्रिंग्स हैं जो दो स्ट्रिंग्स s और t से चुने गए हैं।

समाधान के चरण

  1. n1 := len(s)
  2. n2 := len(t)
  3. ans := 0
  4. s से प्रत्येक इंडेक्स i1 और वर्ण c1 के लिए:
    • t से प्रत्येक इंडेक्स i2 और वर्ण c2 के लिए:
      • i := i1, j := i2
      • while i < n1 and j < n2 and s[i] == t[j]:
        • i += 1, j += 1
      • यदि i < n1 and j < n2 and s[i] != t[j]:
        • i += 1, j += 1
        • ans += 1
        • while i < n1 and j < n2 and s[i] == t[j]:
          • i += 1, j += 1
          • ans += 1
  5. ans वापस करें

उदाहरण

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

def solve(s, t):
    n1 = len(s)
    n2 = len(t)
    ans = 0
    for i1, c1 in enumerate(s):
        for i2, c2 in enumerate(t):
            i = i1
            j = i2
            while i < n1 and j < n2 and s[i] == t[j]:
                i += 1
                j += 1
            if i < n1 and j < n2 and s[i] != t[j]:
                i += 1
                j += 1
                ans += 1
                while i < n1 and j < n2 and s[i] == t[j]:
                    i += 1
                    j += 1
                    ans += 1
    return ans

s = "sts"
t = "tsts"
print(solve(s, t))

इनपुट

"sts", "tsts"

आउटपुट

6
  1. पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास (u, v) के रूप में एज की सूची है जो एक ट्री दर्शाती है। प्रत्येक एज के लिए हमें उन अद्वितीय पथों की कुल संख्या ज्ञात करनी है जिनमें वह एज शामिल है, उसी क्रम में जैसे इनपुट में दिया गया है। उदाहरण के लिए, यदि इनपुट है edges = [[0, 1],[0, 2],[1, 3],[1, 4]], तो आउटपुट [6, 4, 4, 4] ह

  1. - Python प्रोग्राम में वाक्य में शब्दों की गिनती

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है, हमें स्ट्रिंग में शब्दों की संख्या गिनने की आवश्यकता है। दृष्टिकोण 1 - split() फ़ंक्शन का उपयोग करना split() फ़ंक्शन स्ट्रिंग को स्पेस को डिलीमीटर के रूप में एक सूची पुनरावृत्ति में तोड़ता

  1. पायथन प्रोग्राम: सरणी में इनवर्जन गिनें पायथन प्रोग्राम: सरणी में इनवर्जन गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें आवश्यक इनवर्जन गिनने और प्रदर्शित करने हैं। इनवर्जन काउंट यह गिनकर प्राप्त किया जाता है कि सरणी को क्रमबद्ध करने के लिए कितने चरणों की आवश्यकता है। उदाहरण arr[j]): inv_count += 1 re