假设我们有一个字符串 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