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


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

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

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

  • 如果 s 的大小 < t 的大小,则
    • 返回 False
  • 对于 i 从 0 到 t 的大小 - 2,执行
    • x := t[i],y := t[i + 1]
    • right := x 在 s 中的最后一个索引
    • left := x 在 s 中的第一个索引
    • 如果 right 为 -1 或 left 为 -1 或 right > left,则
      • 返回 False
  • 返回 True

让我们看看以下实现以更好地理解 -

示例代码

实时演示

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

更新于: 2021年1月15日

570 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.