给定文本串 和模式串 ,若存在下标 使得 则称 在 中出现,出现位置为 (下标从 开始)。 你的任务包括两部分: 输出 在 中的所有出现位置(按升序); 对于 的每个前缀 ,求其最长 border 的长度。这里 border 指既是 的前缀又是后缀、长度严格小于 的非空子串。
输入描述:
输入共两行: 第一行输入文本串 ; 第二行输入模式串 。 两串均由大小写英文字母组成。


输出描述:
首先按升序逐行输出 在 中的出现位置(若无出现则输出为空行)。 最后一行输出 个整数,第 个整数表示前缀 的最长 border 长度,数之间以单个空格分隔。
示例1

输入

ABABABC
ABA

输出

1
3
0 0 1

说明

出现位置为 13;对于前缀边界数组:A\Rightarrow0AB\Rightarrow0ABA\Rightarrow1
示例2

输入

AAA
AA

输出

1
2
0 1

说明

出现位置为 12;前缀 border 长度序列为 [0,1]
加载中...