#P1046. [2025 实验室一面] 捣蛋鬼别捣蛋

[2025 实验室一面] 捣蛋鬼别捣蛋

题目背景

要我说智斗天花板还得是朵拉,里面语言逻辑缜密,全员智商在线,尤其是捣蛋鬼出来的那一刻我浑身上下冷汗直流,捣蛋鬼压迫感太强了,我始终都不明白朵拉是怎么找到他的。那种眼神直击了我的灵魂,仿佛把我内心的想法全看了出来,等找到了捣蛋鬼后我才缓了过来,当时吓得我一身冷汗,剧情太烧脑了,后劲大得让我睡不着觉。

题目描述

朵拉在一篇游记中怀疑“捣蛋鬼 Swiper”出现过。游记被抽象为一个由小写字母组成的字符串 ss

在游记中,捣蛋鬼 Swiper 不会直接以 "swiper" 现身,他很狡猾,会伪装自己。朵拉要通过推理才能找到他。

字符串 ss 只包含小写字母。

规则如下

  • 捣蛋鬼真实名字是 swiper,长度为 6。
  • 他在游记中可能伪装成 打散 + 插入干扰字母 的形式。
  • 打散:字母顺序必须保持 swiper,但不要求连续。

示例

  • xxswxxipxxerxx(是 swiper 的伪装)
  • swiepr (顺序被打乱,不合法)
  • swiiper (多插入了 i 也行)

朵拉只关心最早能构成 swiper 的位置

起始位置定义为找到 s 的位置。

如果找不到完整的 swiper 序列,输出 -1

输入描述

一行,字符串 ss1s1061 \leq |s| \leq 10^6

输出描述

一个整数,表示第一个 "swiper"(含伪装)出现的起始位置,不存在则输出 -1。

输入输出样例

输入 #1

hellosxwiabcpexrthere

输出 #1

6

解释 #1

从位置 6 开始,依次找到 s (6)、w (8)、i (9)、p (13)、e (14)、r (16),符合顺序。


输入 #2

abcxswiepr

输出 #2

-1

解释 #2

虽然有 swi...pr,但顺序错误(e 在 p 前)。