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

更新於:2020年12月15日

124 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告