কম্পিউটার টিউটোরিয়াল

পাইথনে একটি স্ট্রিংকে অন্য স্ট্রিংএ 1-to-1 ম্যাপ করা সম্ভব কিনা যাচাই করার প্রোগ্রাম


मान लीजिए हमारे पास दो लोअरकेस स्ट्रिंग्स s, और t हैं, हमें जांचना है कि क्या हम s के प्रत्येक अक्षर के लिए दूसरे अक्षर (हो सकता है वही अक्षर) में एक 1-to-1 मैपिंग बना सकते हैं जैसे कि s को t में मैप किया जा सके। (वर्णों का क्रम नहीं बदलेगा)।

उदाहरण के लिए, यदि इनपुट है s = "papa", t = "lili", तो आउटपुट होगा True, क्योंकि हम यह मैपिंग बना सकते हैं: "p" से "l", "a" -> "i"

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

  • s_dict := एक नया मैप
  • t_dict := एक नया मैप
  • i के लिए 0 से s के आकार और t के आकार के न्यूनतम तक की रेंज में, करें
    • यदि s[i], s_dict में मौजूद है, तो
      • यदि s_dict[s[i]], t[i] के समान नहीं है, तो
        • False वापस करें
    • अन्यथा जब t[i], t_dict में मौजूद है, तो
      • यदि t_dict[t[i]], s[i] के समान नहीं है, तो
        • False वापस करें
    • अन्यथा,
      • s_dict[s[i]] := t[i]
      • t_dict[t[i]] := s[i]
  • True वापस करें

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

उदाहरण

class Solution:    def solve(self, s, t):       s_dict = {}       t_dict = {}       for i in range(min(len(s), len(t))):          if s[i] in s_dict:             if s_dict[s[i]] != t[i]:                return False             elif t[i] in t_dict:                if t_dict[t[i]] != s[i]:                   return False                else:                   s_dict[s[i]] = t[i]                   t_dict[t[i]] = s[i]       return True ob = Solution() print(ob.solve("papa", "lili"))

इनपुट

"papa", "lili"

आउटपुट

True

  1. পাইথনে স্ট্রিং ক্যারেক্টার দিয়ে kটি প্যালিনড্রোম বানানো সম্ভব কিনা চেক করা

  2. পাইথনে একটি স্ট্রিং থেকে এক ক্যারেক্টার বাদ দিয়ে অন্য স্ট্রিং তৈরি করা সম্ভব কিনা যাচাই করার প্রোগ্রাম

  3. পাইথনে ক্যারেক্টার ক্লকওয়াইজ শিফট করে একটি স্ট্রিংকে অন্য স্ট্রিংএ কনভার্ট করা সম্ভব কিনা যাচাই করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: স্ট্রিং হেটেরোগ্রাম (Heterogram) কিনা চেক করা