/ Vijos / 题库 /

最大跨距

最大跨距

时间限制:1秒  内存限制:256M


【题目描述】

  有三个字符串 \(S,S_1,S_2\),其中,\(S\) 长度不超过 300,\(S_1\) 和 \(S_2\) 的长度不超过 10。想检测 \(S_1\) 和 \(S_2\) 是否同时在 \(S\) 中出现,且 \(S_1\) 位于 \(S_2\) 的左边,并在 \(S\) 中互不交叉(即,\(S_1\) 的右边界点在 \(S_2\) 的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的 \(S_2\) 的起始点与最左边的 \(S_1\) 的终止点之间的字符数目)。如果没有满足条件的 \(S_1\),\(S_2\) 存在,则输出 -1。

  例如,\(S =\) "abcd123ab888efghij45ef67kl",\(S_1=\)"ab",\(S_2=\)"ef",其中,\(S_1\) 在 \(S\) 中出现了 2 次,\(S_2\) 也在 \(S\) 中出现了 2 次,最大跨距为:18。

【输入格式】

  三个串:\(S, S_1, S_2\),其间以逗号间隔(注意,\(S, S_1, S_2\) 中均不含逗号和空格);

【输出格式】

  \(S_1\) 和 \(S_2\) 在 \(S\) 最大跨距;若在 \(S\) 中没有满足条件的 \(S_1\) 和 \(S_2\),则输出-1。

【输入输出样例】

 Input

abcd123ab888efghij45ef67kl,ab,ef

 Output

18

【来源】

  Mr.he**

信息

ID
2815
难度
10
分类
字符串 点击显示
标签
递交数
9
已通过
0
通过率
0%
被复制
1
上传者