用 Python 编写程序检查输入的字符串是否用于在卡住的键盘键上写入目标字符串

pythonserver side programmingprogramming更新于 2026/1/3 15:08:17

假设我们有两个字符串 s 和 t。我们想要形成 t,但键盘存在一些问题,一些字符卡住了,因此它们可能会被写入 1 次或多次。我们必须检查输入的 s 是否有可能意味着要写入 t。

因此,如果输入类似于 s = "appppleee" t = "apple",则输出将为 True。

为了解决这个问题,我们将遵循以下步骤 −

  • i := 0, j := 0
  • s_len := s 的大小
  • t_len := t 的大小
  • t_last := 空字符串
  • while j < t_len,do
    • 如果 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

相关文章


有用资源