Python程式:查詢將單詞連線起來構成迴文串的方法數
假設我們有一組不同的單詞,我們需要找到將兩個不同的單詞從給定單詞列表中連線起來構成迴文串的不同方法數。
因此,如果輸入類似於 words = ["time", "emit", "mo", "m"],則輸出將為 3,因為我們可以構成 "timeemit"、"emittime" 和 "mom"。
為了解決這個問題,我們將遵循以下步驟:
res := 0
ln := 陣列中的單詞數量
對於 k 從 0 到 1 的範圍:
對於 i 從 0 到 ln - 1 的範圍:
對於 j 從 i + 1 到 ln - 1 的範圍:
res := res + (當 words[i] 與 words[j] 連線後是迴文串時為 1,否則為 0)
words := 反轉後的 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
廣告