首页 > 试题广场 >

序列模式匹配

[编程题]序列模式匹配
  • 热度指数:3098 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
给定文本text和待匹配字符串pattern,二者皆只包含小写字母,并且不为空。
在text中找出匹配pattern的最短字符串,匹配指按序包含pattern,但不要求pattern连续。
如text为abaacxbcbbbbacc,pattern为cbc,text中满足条件的是abaacxbcbbbbacc下划线部分。

输入描述:
多行,每行一个text和一个pattern,用空格分隔。
保证1<=|text|,|pattern|<=1000,Σ|text|,Σ|pattern|<=10000。


输出描述:
输出最短匹配序列起止位置(位置下标从0开始),用空格分隔。若有多个答案,输出起止位置最小的答案;若无满足条件的答案,则起止均为-1。
示例1

输入

abaacxbcbbbbacc cbc
abc x
aaabcac ac

输出

4 7
-1 -1
5 6
头像 精灵副将
发表于 2024-10-03 22:50:17
#include <iostream> #include <string> #include <vector> using namespace std; int main() { string text,pattern; while(cin & 展开全文
头像 精灵副将
发表于 2024-10-02 16:36:30
先循环遍历确定一个答案范围,然后以这个范围作为基点作滑动窗口,当这个滑动窗口长度比当前答案小,则改为当前答案。 #include <iostream> #include <string> #include <vector> using namespace std; 展开全文