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

पायथन का उपयोग करके पैलिंड्रोम बनाने के लिए दो तारों को विभाजित करने का कार्यक्रम

मान लीजिए कि हमारे पास दो तार a और b हैं जिनकी लंबाई समान है। हमें एक इंडेक्स का चयन करना है और उस चयनित इंडेक्स पर दोनों स्ट्रिंग्स को विभाजित करना है, a को दो स्ट्रिंग्स में विभाजित करना:a_pref और a_suff जहां a =a_pref | a_suff, और b को दो स्ट्रिंग्स में विभाजित करना:b_pref | b_suff (| concatenation ऑपरेटर है) जहां b =b_pref + b_suff. जांचें कि a_pref + b_suff या b_pref + a_suff एक पैलिंड्रोम बनाता है या नहीं। (कोई भी विभाजन एक खाली स्ट्रिंग हो सकता है)

इसलिए, यदि इनपुट a ="pqrst" b ="turqp" जैसा है, तो आउटपुट सही होगा क्योंकि हम ["pq", "rst"] और b जैसे ["tu", "rqp" को विभाजित कर सकते हैं। ], इसलिए अगर हम a_pref को b_suff के साथ जोड़ते हैं, तो हमें "pqrqp" मिलेगा जो एक पैलिंड्रोम है।

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

  • प्रत्येक जोड़ी (x, y) के लिए जोड़ियों की सूची से [(a, b), (b, a)], do

    • मैं :=0, j :=x - 1 का आकार

    • जबकि x[i] y[j] के समान है और i 0, करते हैं

      • मैं :=मैं + 1

      • जे:=जे - 1

    • midx :=इंडेक्स i से j तक x का सबस्ट्रिंग

    • midy :=y को अनुक्रमणिका i से j में प्रतिस्थापित करना

    • अगर मिडक्स पैलिंड्रोम है या मिडी पैलिंड्रोम है, तो

      • सही लौटें

  • झूठी वापसी

उदाहरण

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

def solve(a, b):
   for x, y in [[a, b], [b, a]]:
      i, j = 0, len(x) - 1
      while x[i] == y[j] and i<len(x) and j>0:
         i += 1
         j -= 1
      midx = x[i:j+1]
      midy = y[i:j+1]
      if (midx == midx[::-1] or midy== midy[::-1]):
         return True
   return False

a = "pqrst"
b = "turqp"
print(solve(a, b))

इनपुट

"pqrst", "turqp"

आउटपुट

True

  1. पायथन का उपयोग करके दो भूखंडों को साथ-साथ कैसे बनाया जाए?

    सबप्लॉट (पंक्ति, कॉल, इंडेक्स) विधि का उपयोग करके, हम एक आकृति को पंक्ति * कॉल भागों में विभाजित कर सकते हैं, और सूचकांक स्थिति पर आकृति को प्लॉट कर सकते हैं। निम्नलिखित कार्यक्रम में, हम एक ही आकृति में दो आरेख बनाएंगे। कदम numpy का उपयोग करके x, y1, y2 अंक बनाना। nrows =1, ncols =2, index =1

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

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो तार दिए गए हैं, हमें दिए गए तार से असामान्य शब्द निकालने होंगे। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # uncommon words def find(A, B):    # count    count = {}   &n

  1. पायथन में रेगेक्स का उपयोग करके दो तारों की तुलना कैसे करें?

    हम निम्नलिखित कोड का उपयोग करके दिए गए स्ट्रिंग्स की तुलना कर सकते हैं उदाहरण import re s1 = 'Pink Forest' s2 = 'Pink Forrest' if bool(re.search(s1,s2))==True:    print 'Strings match' else:    print 'Strings do not match' आउटपुट यह आउटपुट देता है