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

प्रोग्राम यह जांचने के लिए कि क्या हम स्ट्रिंग को K चालों में परिवर्तित कर सकते हैं या पायथन का उपयोग नहीं कर सकते हैं

मान लीजिए कि हमारे पास दो तार s और t हैं, हमें यह जांचना है कि s को k चालों में t में बदला जा सकता है या कम। Ith मूव में आप ये ऑपरेशन कर सकते हैं।

  • s में कोई भी अनुक्रमणिका j (1 से शुरू करके) चुनें, जैसे कि 1 <=j <=s और j का आकार किसी भी पिछली चाल में नहीं चुना गया है, और उस अनुक्रमणिका पर वर्ण को कई बार स्थानांतरित करें।

  • जैसा है वैसा ही रहो।

यहां एक वर्ण को स्थानांतरित करने का अर्थ है इसे वर्णमाला के अगले अक्षर से बदलना (यदि अक्षर 'z' है, तो इसे 'a' में लपेटें)। इसलिए किसी कैरेक्टर को i बार शिफ्ट करना शिफ्ट ऑपरेशंस को i बार लागू करने का संकेत देता है।

इसलिए, यदि इनपुट s ="पॉपुट" t ="vwput" k =9 जैसा है, तो आउटपुट सही होगा क्योंकि i =6 पर, हम 'p' को 'v' में बदल सकते हैं, और i =8 पर, हम 'o' को 'w' में बदल सकते हैं।

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

  • यदि s का आकार t के आकार के समान नहीं है, तो

    • झूठी वापसी

  • गिनती :=0 से 25 तक सभी के लिए एक सरणी होल्डिंग (न्यूनतम 1 और (k - i + 1 +(k - i)/26))

  • प्रत्येक वर्ण c1 के लिए s से और c2 t से, करें

    • अगर c1 c2 के समान नहीं है, तो

      • अंतर :=(c2 का ASCII - c1 + 26 का ASCII) मॉड 26

      • अगर गिनती[diff] <=0, तो

        • झूठी वापसी

      • गिनती[diff] :=count[diff] - 1

  • सही लौटें

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

उदाहरण

def solve(s, t, k):
   if len(s) != len(t):
      return False
   count = [min(1, k - i + 1) + (k - i)//26 for i in range(26)]
   for c1, c2 in zip(s, t):
      if (c1 != c2):
         diff = (ord(c2) - ord(c1) + 26) % 26
         if count[diff] <= 0:
            return False
         count[diff] -= 1
   return True
s = "poput"
t = "vwput"
k = 9
print(solve(s, t,k))

इनपुट

"poput","vwput",9

आउटपुट

True

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

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

  1. एक सूची खाली है या नहीं, यह जांचने के लिए पायथन प्रोग्राम?

    एक खाली सूची दी। हमारा काम मौसम की जांच करना है कि यह सूची खाली है या नहीं। यहाँ हम जाँच करते हैं जाँच का एक निहित तरीका है। एल्गोरिदम Step 1: We take an empty list. Step 2: then check if list is empty then return 1 otherwise 0. उदाहरण कोड # Python code to check for empty list def checklist(A):

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

    पायथन के मानक पुस्तकालय से reveresed() फ़ंक्शन का उपयोग करें। यह उलटी हुई वस्तु लौटाता है जिसे सूची वस्तु में परिवर्तित किया जा सकता है >>> str1='malayalam' >>> l1=list(reversed(str1)) >>> l1 ['m', 'a', 'l', 'a', 'y', 'a&