匹配字串

2021-08-04 07:25:56 字數 722 閱讀 7516

有兩個串吧,子串可以存在 『?』, 『?』可以和任意字元匹配,然後還有乙個母串,判斷母串是否包含子串,也就是子串是否包含於母串

例如 子串:aa?bbcc 母串:aabbbcc

這就是符合要求的串

( 由於版權問題,不提供原題 )

這就是kmp啊,只是匹配的時候多了乙個條件(當出現 『?』時直接跳過此位)

就是那層if裡面加乙個s[t2]=='?'

#include 

#include

#include

using

namespace

std;

char t[100101],s[100101];

int next[100101];

int flag;

int main()

else t2=next[t2];

}int len1=strlen(t),len2=strlen(s);

t1=0,t2=0;

while(t1if(t2==-1||t[t1]==s[t2]||s[t2]=='?')

t1++,t2++;

else

t2=next[t2];

if(t2==len2)

}if(!flag) printf("i will wa!\n");

}return

0; }

字串匹配

題目描述 讀入資料string 然後讀入乙個短字串。要求查詢string 中和短字串的所有匹配,輸出行號 匹配字串。匹配時不區分大小寫,並且可以有乙個用中括號表示的模式匹配。如 aa 123 bb 就是說aa1bb aa2bb aa3bb都算匹配。輸入 輸入有多組資料。每組資料第一行輸入n 1 n ...

字串匹配

time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...

字串匹配

面試題 給一串很長的字串,要求找到符合要求的字串,例如目的串 123 1 3 2 12 3 這些都要找出來 思路一 利用兩層迴圈,逐個查詢目的串中的字元,比如先查詢字元 1 是否在長字串中,再查詢 2 是否在長字串中,直到目的串遇到 0 是 include include include int m...