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,則
- 如果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
廣告