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

পাইথনে প্যালিনড্রোম তৈরির জন্য শব্দ জোড়া সংখ্যা গণনা

বিভিন্ন শব্দের একটি তালিকা দেওয়া আছে। তালিকা থেকে দুটি ভিন্ন শব্দ একসাথে যোগ করে প্যালিনড্রোম बनाने के কতভাবে সম্ভব তা বের করতে হবে।

উদাহরণ: words = ["time", "emit", "mo", "m"] হলে আউটপুট ৩, কারণ "timeemit", "emittime", "mom" তৈরি করা যায়।

সমাধানের ধাপসমূহ

  • res := 0
  • দুইবার লুপ চালান (k=0,1) যাতে উভয় ক্রম যাচাই হয়
  • সব i
  • দ্বিতীয় পাসে words রিভার্স করুন
  • res ফেরত দিন

উদাহরণ কোড

class Solution:
    def solve(self, words):
        def is_palindrome(w1, w2):
            w3 = w1 + w2
            return w3 == w3[::-1]
        res = 0
        ln = len(words)
        for k in range(2):
            for i in range(ln):
                for j in range(i + 1, ln):
                    res += is_palindrome(words[i], words[j])
            words = words[::-1]
        return res

ob = Solution()
words = ["time", "emit", "mo", "m"]
print(ob.solve(words))

ইনপুট

["time", "emit", "mo", "m"]

আউটপুট

3
  1. পাইথনে চেঞ্জ করার ন্যূনতম কয়েন সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে স্ট্রিং ক্যারেক্টার ব্যবহার করে ইউনিক প্যালিনড্রোমের সংখ্যা গণনা করার প্রোগ্রাম

  3. পাইথনে এনকোডেড মেসেজ ডিকোড করার উপায়ের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে 'a' কে 'a' বা 'b' এবং 'b' কে 'b' রেখে বানানো সম্ভাব্য স্ট্রিং সংখ্যা বের করার প্রোগ্রাম