বিভিন্ন শব্দের একটি তালিকা দেওয়া আছে। তালিকা থেকে দুটি ভিন্ন শব্দ একসাথে যোগ করে প্যালিনড্রোম बनाने के কতভাবে সম্ভব তা বের করতে হবে।
উদাহরণ: 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