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

जांचें कि क्या पायथन में दिए गए बाधा के तहत ए से स्ट्रिंग बी बनाना संभव है

मान लीजिए कि हमारे पास दो तार s और t हैं, और दो मान p और q हैं। हमें यह जांचना होगा कि क्या s से t प्राप्त करना संभव है जैसे कि s को अंतिम समूह को छोड़कर वर्णों की p संख्या के समूहों में विभाजित किया गया है, जिसमें वर्ण p होंगे और हम प्रत्येक समूह से अधिक से अधिक q वर्णों को चुन सकते हैं, और t में वर्णों का क्रम भी s के समान होना चाहिए।

इसलिए, यदि इनपुट s ="mnonnopeqrst", t ="moprst", p =5, q =2 जैसा है, तो आउटपुट सही होगा क्योंकि हम "mnonn", "opeqr", "st" जैसे डिवीजन बना सकते हैं। , अब "mnonn" और "opeqr" से 2 कैरेक्टर सबस्ट्रिंग "mo" और "pr" लेकर फिर "st" पहले से मौजूद है इसलिए इन दो लेंथ सबस्ट्रिंग्स का उपयोग करके हम साधारण कॉन्सटेनेशन द्वारा t जेनरेट कर सकते हैं।

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

  • अस्थायी:=एक खाली नक्शा जिसमें सभी चाबियों के लिए खाली सूची है
  • l :=s की लंबाई के समान आकार की एक सूची और 0 से भरें
  • i के लिए 0 से लेकर s के आकार तक के लिए, करें
    • अस्थायी के अंत में i डालें['a']
  • निम्न :=0
  • i के लिए 0 से t-1 के आकार की सीमा में, do
    • सूचकांक:=अस्थायी['ए']
    • यह :=अनुक्रमित क्रम को बनाए रखने के लिए सूचकांक सूची में कम सम्मिलित करने के लिए सूचकांक
    • यदि यह सूचकांक -1 के आकार के समान है, तो
      • झूठी वापसी
    • गिनती :=का भागफल (सूचकांक[it] / p)
    • l[गिनती] :=l[गिनती] + 1
    • यदि l[गिनती]>=q, तो
      • गिनती :=गिनती + 1
      • कम:=गिनती * पी
    • अन्यथा,
      • निम्न :=सूचकांक [यह] + 1
  • सही लौटें

उदाहरण

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

from bisect import bisect_left
from collections import defaultdict
def solve(s, t, b, m) :
   temp = defaultdict(list)
   l = [0] * len(s)
   for i in range(len(s)) :
      temp['a'].append(i)
   low = 0
   for i in range(len(t)) :
      indices = temp['a']
      it = bisect_left(indices, low)
      if it == len(indices) :
         return False
      count = indices[it] // b
      l[count] = l[count] + 1
      if l[count] >= m :
         count += 1
         low = count * b
      else :
         low = indices[it] + 1
   return True
s = "mnonnopeqrst"
t = "moprst"
p = 5
q = 2
print (solve(s, t, p, q))

इनपुट

"mnonnopeqrst", "moprst", 5, 2

आउटपुट

True

  1. पायथन प्रोग्राम यह जाँचने के लिए कि क्या दी गई स्ट्रिंग स्वर है पालिंड्रोम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें स्ट्रिंग (स्वर और व्यंजन दोनों अक्षरों से युक्त) दी गई है, सभी व्यंजनों को हटा दें, फिर जांचें कि परिणामी स्ट्रिंग एक पैलिंड्रोम है या नहीं। यहां हम सबसे पहले स्ट्रिंग में मौजूद सभी व्यंजनों को हटाते हैं। प्रत्य

  1. पायथन प्रोग्राम यह जाँचने के लिए कि क्या दिया गया स्ट्रिंग पैंग्राम है

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

  1. दिए गए स्ट्रिंग से सभी संभावित वैध आईडी पता उत्पन्न करने के लिए पायथन प्रोग्राम

    तार दिया गया है। स्ट्रिंग में केवल अंक होते हैं। हमारा काम सभी संभावित मान्य आईपी एड्रेस संयोजनों की जांच करना है। यहां पहले हम स्ट्रिंग की लंबाई की जांच करते हैं और फिर । से विभाजित करते हैं। फिर हम । के विभिन्न संयोजनों की जांच करते हैं। उदाहरण Input : 255011123222 Its not a valid IP address. In