Python程式:判斷兩個字串是否僅在一個相同位置的字元上存在差異


假設我們得到一個數組,包含多個長度相同的字串。我們需要找出是否存在任意兩個字串僅在一個相同位置的字元上存在差異。如果存在這種差異,則返回True,否則返回False。

例如,如果輸入是dict = ['pqrs', 'prqs', 'paqs'],則輸出為True。輸出為True是因為輸入中列出的字串在索引1處都存在差異。因此,如果取任意兩對字串,它們在相同位置上存在差異。

為了解決這個問題,我們將遵循以下步驟:

  • seens := 一個新的集合

  • 對於dict中的每個單詞,執行以下操作:

    • 對於單詞中的每個索引i和字元c,執行以下操作:

      • masked_word := word[從索引0到i] + '.' + word[從索引i+1到字串結尾]

      • 如果seens中存在masked_word,則:

        • 返回True

      • 否則:

        • 將masked_word新增到seens

  • 返回False

示例(Python)

讓我們來看下面的實現,以便更好地理解:

 線上演示

def solve(dict):
   seens = set()
   for word in dict:
      for i, c in enumerate(word):
         masked_word = word[:i] + '.' + word[i+1:]
         if masked_word in seens:
            return True
         else:
            seens.add(masked_word)
   return False

print(solve(['pqrs', 'prqs', 'paqs']))

輸入

['pqrs', 'prqs', 'paqs']

輸出

True

更新於:2021年5月18日

117次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.