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

পাইথনে দুটি স্ট্রিংয়ের পারমিউটেশন থেকে লেক্সিকোগ্রাফিক্যালি বড় বা ছোট রিলেশন চেক করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে সমান দৈর্ঘ্যের দুটি স্ট্রিং s এবং t আছে। আমাদের কাজ হল চেক করা যে s-র কোনো পারমিউটেশন s1 এবং t-র কোনো পারমিউটেশন t1 আছে কিনা যাতে s1[i] <= t1[i] সকল 0 <= i < n এর জন্য সত্য হয়, অথবা t1[i] <= s1[i] সকল i এর জন্য সত্য হয়।

উদাহরণস্বরূপ, যদি ইনপুট হয় s = "vyx" এবং t = "wzx", তবে আউটপুট হবে True, কারণ আমরা s1 = "vxy" এবং t1 = "wxz" বানাতে পারি।

সমাধানের ধাপসমূহ:
  • যদি s এবং t খালি হয়, তবে True রিটার্ন করুন।
  • s := sorted(s), t := sorted(t)
  • একটি util() ফাংশন ডিফাইন করুন যা s1, t1 নেবে।
    • i কে ০ থেকে len(s1) পর্যন্ত লুপ চালান:
      • যদি s1[i] > t1[i] হয়, তবে False রিটার্ন করুন।
    • True রিটার্ন করুন।
  • মূল মেথড থেকে:
    • যদি util(s, t) true হয়, তবে True রিটার্ন করুন।
    • s, t = t, s (সওয়াপ)
    • util(s, t) রিটার্ন করুন।
উদাহরণ কোড
class Solution:
    def solve(self, s, t):
        if not len(s) or not len(t):
            return True
        s = sorted(s)
        t = sorted(t)
        def util(s1, t1):
            for i in range(len(s1)):
                if s1[i] > t1[i]:
                    return False
            return True
        if util(s, t):
            return True
        s, t = t, s
        return util(s, t)

ob = Solution()
s = "vyx"
t = "wzx"
print(ob.solve(s, t))
ইনপুট
"vyx", "wzx"
আউটপুট
True
  1. C প্রোগ্রাম: দুটি স্ট্রিং একই কিনা চেক করা

  2. পাইথনে ডাইরেক্টেড গ্রাফে কমন রিচেয়achable নোড আছে কিনা চেক করা

  3. পাইথনে দুটি স্ট্রিংকে অ্যানাগ্রাম बनानेवाले পার্টিশনে ভাগ করার প্রোগ্রাম

  4. পাইথনে লিস্টে যেকোনো দুটি সংখ্যার যোগফল k কিনা যাচাই করার প্রোগ্রাম