2020-串作業
7-1 串的模式匹配
給定兩個由英文字母組成的字串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出現的位置,並將此位置後的 String 的子串輸出。如果找不到,則輸出“Not Found”。
本題旨在測試各種不同的匹配演算法在各種資料情況下的表現。各組測試資料特點如下:
資料0:小規模字串,測試基本正確性;
資料1:隨機資料,String 長度為 10
5
,Pattern 長度為 10;
資料2:隨機資料,String 長度為 10
5
,Pattern 長度為 10
2
;
資料3:隨機資料,String 長度為 10
5
,Pattern 長度為 10
3
;
資料4:隨機資料,String 長度為 10
5
,Pattern 長度為 10
4
;
資料5:String 長度為 10
6
,Pattern 長度為 10
5
;測試尾字元不匹配的情形;
資料6:String 長度為 10
6
,Pattern 長度為 10
5
;測試首字元不匹配的情形。
輸入格式:
輸入第一行給出 String,為由英文字母組成的、長度不超過 10
6
的字串。第二行給出一個正整數 N(≤10),為待匹配的模式串的個數。隨後 N 行,每行給出一個 Pattern,為由英文字母組成的、長度不超過 10
5
的字串。每個字串都非空,以回車結束。
輸出格式:
對每個 Pattern,按照題面要求輸出匹配結果。
輸入樣例:
abcabcabcabcacabxy
3
abcabcacab
cabcabcd
abcabcabcabcacabxyz
輸出樣例:
abcabcacabxy
Not Found
Not Found
#include<iostream>
#include<cstring>
using namespace std;
typedef struct {
char* ch;
int length;
}HString;
int SubString(char*m, char*n)
{
char *s;
s=strstr(m,n);
if(s==NULL)
{
cout<<"Not Found"<<endl;
return 0;
}
else
{
cout<<s<<endl;
}
return 1;
}
int main()
{
int x;
char a[1000001],b[100001];
cin>>a;
cin >> x;
for (int i = 0; i < x; i++)
{
cin>>b;
SubString(a,b);
}
return 0;
}
相關文章
- 2020-百度-前端前端
- 2020-為什麼換了工作
- 2020-汪春波的自我說明
- 作業系統 作業5作業系統
- 作業
- 30串聯所有單詞的子串
- 作業系統(1)——作業系統概述作業系統
- 【團隊作業】第三週作業1
- 作業系統(一):作業系統概述作業系統
- 2024.5.22作業
- 2024.4.19作業
- 2024.4.12作業
- 2024.4.28作業
- 2924.3.27作業
- 2024.3.28作業
- 2024.3.29作業
- 2024.5.23作業
- 2024.3.22作業
- 2024.4.10作業
- 作業3
- 2024.3.12作業
- 2024.3.13作業
- 2024.5.7作業
- 2024.4.1作業
- 2024.4.25作業
- 2024.3.25作業
- 2024.4.16作業
- 2024.3.15作業
- 2024.3.14作業
- 作業四
- python作業Python
- 作業2
- 作業01
- 作業二
- 作業7
- 2024.6.24作業
- 2024.6.20作業
- 2024.6.21作業