मान लीजिए कि हमारे पास अलग-अलग शब्दों की एक सूची है, हमें पैलिंड्रोम बनाने के लिए दी गई शब्दों की सूची से दो अलग-अलग शब्दों को जोड़ने के विभिन्न तरीकों की संख्या का पता लगाना होगा।
इसलिए, यदि इनपुट शब्द =["समय", "एमिट", "मो", "एम"] जैसा है, तो आउटपुट 3 होगा, क्योंकि हम "टाइमेमिट", "एमिटटाइम" और "मॉम" बना सकते हैं। ।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
रेस :=0
-
ln:=सरणी में शब्दों की संख्या
-
k के लिए 0 से 1 की सीमा में, करें
-
0 से ln − 1 की सीमा में i के लिए, करें
-
j के लिए i + 1 से ln − 1 की श्रेणी में, करें
-
res :=res + (1 जब शब्द [i] शब्दों को जोड़ते हैं [j] पैलिंड्रोम है, अन्यथा 0)
-
-
-
शब्द :=उल्टे क्रम में शब्द
-
-
रिटर्न रेस
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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