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
广告