本题是经典的双指针判断子序列。
用指针 i 扫 path,j 扫 script:
运维同学按时间顺序走过一批设备,轨迹为 path。巡检脚本规定必须按相对顺序经过的设备编号为 script。
判断 script 是否为 path 的子序列:
script 中若同一编号出现多次,则 path 中也必须按顺序提供同样多次script 为空,视为已覆盖,返回 1请实现:
canFollowScript(path: int[], script: int[]) -> int
两行:
path,形如 [3, 1, 4, 1, 5, 9]script,形如 [1, 1, 9]约束:
一个整数:1 表示可以按脚本走完,0 表示不能。
输入:
[3, 1, 4, 1, 5, 9]
[1, 1, 9]
输出:
1
说明:在 path 中依次取下标 1 的 1、下标 3 的 1、下标 5 的 9,构成子序列。
输入:
[1, 2, 3]
[1, 3, 2]
输出:
0
说明:集合上三个数都出现过,但 3 出现在 2 之后,无法按 1,3,2 的顺序取到。
输入:
[7, 8, 9]
[]
输出:
1
说明:空脚本天然被覆盖。
本题属于以下题库,请选择所需题库进行购买
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.