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

启动你的职业生涯

通过完成课程获得认证

开始学习
广告