检查字符串是否遵循 Python 中由模式定义的字符顺序

假设我们有一个字符串 s 和另一个字符串 t 作为模式,我们必须检查 s 中的字符是否遵循与 t 中存在的字符确定的相同顺序。这里我们在模式中没有重复的字符。

因此,如果输入类似于 s = "hello world" t = "hw",那么输出将为 True。

为了解决这个问题,我们将按照以下步骤操作 -

  • 如果 s 的大小 < t 的大小,则

    • 返回错误

  • 对于范围 0 到 t - 2 大小的 i,请执行

    • 返回错误

    • x := t[i], y := t[i + 1]

    • right := x 在 s 中的最后一个索引

    • left := x 在 s 中的第一个索引

    • 如果 right 是 -1 或 left 是 -1 或 right > left,则

  • 返回真

让我们看看以下实现以获得更好的理解 -

示例代码

def solve(s, t):
   if len(s) < len(t) :
      return False
 
   for i in range(len(t) - 1):
      x = t[i]
      y = t[i + 1]
 
      right = s.rindex(x)
      left = s.index(y)
 
      if right == -1 or left == -1 or right > left:
         return False

   return True

s = "hello world"
t = "hw"
print(solve(s, t))

输入

"hello world", "hw"
输出结果
True