用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