檢查字串是否遵循 Python 中由模式定義的字元順序


假設我們有一個字串 s 和另一個字串 t 作為模式,我們需要檢查字串 s 中的字元是否遵循 t 中存在的字元所確定的相同順序。這裡模式中沒有重複的字元。

因此,如果輸入類似於 s = "hello world" t = "hw",則輸出將為 True。

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

  • 如果 s 的大小 < t 的大小,則
    • 返回 False
  • 對於 i 從 0 到 t 的大小 - 2,執行
    • x := t[i],y := t[i + 1]
    • right := x 在 s 中的最後一個索引
    • left := x 在 s 中的第一個索引
    • 如果 right 為 -1 或 left 為 -1 或 right > left,則
      • 返回 False
  • 返回 True

讓我們看看以下實現以更好地理解 -

示例程式碼

即時演示

def solve(s, t):
   if len(s) < len(t) :
      return False
 
   for i in range(len(t) - 1):
      x = t[i]
      y = t[i + 1]
 
      right = s.rindex(x)
      left = s.index(y)
 
      if right == -1 or left == -1 or right > left:
         return False

   return True

s = "hello world"
t = "hw"
print(solve(s, t))

輸入

"hello world", "hw"

輸出

True

更新於: 2021年1月15日

570 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.