Python程式:檢查輸入字串是否由卡住的鍵盤按鍵重複生成目標字串


假設我們有兩個字串s和t。我們想構建t,但是鍵盤上有些按鍵卡住了,所以有些字元可能會被輸入一次或多次。我們必須檢查輸入的s是否可能意圖編寫t。

因此,如果輸入類似s = "appppleee" t = "apple",則輸出為True。

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

  • i := 0, j := 0
  • s_len := s的長度
  • t_len := t的長度
  • t_last := 空字串
  • 當j < t_len時,執行:
    • 如果i等於s_len,則
      • 返回False
    • 如果s[i]等於t[j],則
      • t_last := t[j]
      • i := i + 1
      • j := j + 1
    • 否則,如果s[i]等於t_last,則
      • i := i + 1
    • 否則,
      • 返回False
  • 如果i < s_len,則
    • 如果s[從索引i到結尾]的所有字元都與t_last相同,則返回true
  • 否則,
    • 返回True

示例

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

def solve(s, t):
   i = j = 0
   s_len = len(s)
   t_len = len(t)
   t_last = ""
   while j < t_len:
      if i == s_len:
         return False
      if s[i] == t[j]:
         t_last = t[j]
         i += 1
         j += 1
      elif s[i] == t_last:
         i += 1
      else:
         return False
   if i < s_len:
      return all(char == t_last for char in s[i:])
   else:
      return True

s = "appppleee"
t = "apple"
print(solve(s, t))

輸入

"appppleee", "apple"

輸出

True

更新於:2021年10月14日

瀏覽量:134

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告