古籍残卷中的密语标记
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
城南的古籍修复室里,修复师老周正在整理一批刚从旧书库中清点出来的残卷。这批残卷年代久远,纸页脆黄,上面的文字大多已经模糊,但每一卷中都可能藏着一段重复出现的关键密语。老周的助手小林负责为这些残卷建立检索卡片:给定一卷残卷的完整文字,以及一段需要查找的关键密语,找出这段密语在残卷中每一次出现的起始位置,并把这些位置记录到卡片上,方便后续修复与考据。由于这批残卷篇幅都不算太长,老周决定采用最直观的逐位比对方法来完成检索,不必引入复杂的索引结构。小林只需要按照要求,把所有匹配位置按从前往后的顺序整理出来即可。如果整卷残卷中都没有出现这段密语,就在卡片上记下“无匹配”。
具体来说,给定一个主串 和一个模式串 ,请你找出 在 中所有出现的起始位置。位置编号从 开始。如果 在 中没有出现过,请输出 。
输入格式
- 第一行:一个字符串 ()
- 第二行:一个字符串 ()
输出格式
- 若存在匹配,在一行中输出所有匹配的起始位置,按升序输出,用单个空格分隔。
- 若不存在匹配,直接输出 。
输入输出样例
banana
ana
2 4
样例解释:
主串 ,模式串 。
位置编号从 开始:
b a n a n a
1 2 3 4 5 6
- 从位置 开始,连续 个字符为 ,与 匹配;
- 从位置 开始,连续 个字符为 ,与 匹配。
因此所有匹配起始位置按升序为 2 4。
说明/提示
数据保证子串位置不连续。
2026年10月25日(星期日)C++信息学中级组周赛
- 状态
- 已结束
- 规则
- IOI
- 题目
- 4
- 开始于
- 2026-10-25 14:00
- 结束于
- 2026-10-25 16:30
- 持续时间
- 2.5 小时
- 主持人
- 参赛人数
- 5
