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

जांचें कि क्या पायथन में दिए गए बाधाओं का उपयोग करके किसी अन्य स्ट्रिंग से एक स्ट्रिंग बनाई जा सकती है

मान लीजिए कि हमारे पास दो स्ट्रिंग्स लोअरकेस स्ट्रिंग्स s और t हैं। हमें यह जांचना होगा कि निम्नलिखित बाधाओं का उपयोग करके s से t उत्पन्न किया जा सकता है या नहीं -

  • उदाहरण के लिए t के वर्ण s में हैं यदि t में दो 'a' हैं, तो s में भी दो 'a' होने चाहिए।

  • जब t में कोई वर्ण s में नहीं है, तो जाँच करें कि पिछले दो वर्ण (पिछले दो ASCII मान) s में हैं या नहीं। उदाहरण के लिए, यदि 'f' t में है लेकिन s में नहीं है, तो 'f' बनाने के लिए s से 'd' और 'e' का उपयोग किया जा सकता है।

इसलिए, यदि इनपुट s ="pghn" t ="pin" जैसा है, तो आउटपुट सही होगा क्योंकि हम 'g' से 'i' बना सकते हैं और 'h' को "pin" बना सकते हैं।

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

  • आवृत्ति:=s में प्रत्येक वर्ण की आवृत्ति
  • i के लिए 0 से t के आकार की सीमा में, करें
    • अगर freq[t[i]] शून्य नहीं है, तो
      • freq[t[i]] :=freq[t[i]] - 1
    • अन्यथा जब freq[t[i]] का पहला पिछला वर्ण और freq[t[i] का दूसरा पिछला वर्ण शून्य नहीं है, तब
      • फ़्रीक को कम करें[t का पहला पिछला वर्ण[i]] 1 से कम करें
      • फ़्रीक घटाएं[t[i]] का दूसरा पिछला वर्ण 1
    • अन्यथा,
      • झूठी वापसी
  • सही लौटें

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

उदाहरण

from collections import defaultdict
def solve(s, t):
   freq = defaultdict(lambda:0)
   for i in range(0, len(s)):
      freq[s[i]] += 1
   for i in range(0, len(t)):
      if freq[t[i]]:
         freq[t[i]] -= 1
      elif (freq[chr(ord(t[i]) - 1)] and freq[chr(ord(t[i]) - 2)]):
         freq[chr(ord(t[i]) - 1)] -= 1
         freq[chr(ord(t[i]) - 2)] -= 1
      else:
         return False
   return True
s = "pghn"
t = "pin"
print(solve(s, t))

इनपुट

"pghn", "pin"

आउटपुट

True

  1. पायथन - जांचें कि दी गई स्ट्रिंग बाइनरी स्ट्रिंग है या नहीं

    इस लेख में हम जांचते हैं कि किसी दिए गए स्ट्रिंग में केवल 1 या 0 वर्ण हैं। हम ऐसे स्ट्रिंग्स को बाइनरी स्ट्रिंग कहते हैं। यदि इसमें कोई अन्य अंक जैसे 2 या 3 आदि हैं, तो हम इसे एक गैर-बाइनरी स्ट्रिंग के रूप में वर्गीकृत करते हैं। सेट के साथ पायथन में सेट ऑपरेटर केवल अद्वितीय तत्वों को संग्रहीत करता

  1. जांचें कि क्या दिए गए स्ट्रिंग को पायथन में सूची के स्ट्रिंग तत्वों को जोड़कर बनाया जा सकता है

    हमें कभी-कभी यह जांचने की आवश्यकता होती है कि सूची में मौजूद कई स्ट्रिंग्स से एक आवश्यक स्ट्रिंग बनाई जा सकती है या नहीं। यह भी मायने नहीं रखना चाहिए कि सूची में तार किस क्रम में मौजूद हैं जिन्हें आवश्यक स्ट्रिंग प्राप्त करने के लिए जोड़ा जाना है। क्रमपरिवर्तन के साथ itertools से हम क्रमपरिवर्तन फ़

  1. एक पायथन स्ट्रिंग को दूसरे में जोड़ें

    अजगर में तार जोड़कर हम एक नई स्ट्रिंग प्राप्त करने के लिए उन्हें बस जोड़ देते हैं। यह टेक्स्ट एनालिटिक्स आदि जैसे कई परिदृश्यों में उपयोगी है। नीचे हम इस कार्य के लिए दो दृष्टिकोणों पर विचार कर रहे हैं। +=ऑपरेटर का उपयोग करना + ऑपरेटर का उपयोग स्ट्रिंग्स के लिए उसी तरह किया जा सकता है जैसा कि संख्य