字串匹配

2022-02-16 02:01:46 字數 864 閱讀 3608

2020-02-20 16:14:05

給定字串str,其中絕對不含有字元』.』和』*』。再給定字串exp,其中可以含有』.』或』*』,』*』字元不能是exp的首字元,並且任意兩個』*』字元不相鄰。exp中的』.』代表任何乙個字元,exp中的』*』表示』*』的前乙個字元可以有0個或者多個。請寫乙個函式,判斷str是否能被exp匹配。

【舉例】

str=「abc」,exp=「abc」。返回true。

str=「abc」,exp=「a.c」。exp中單個』.』可以代表任意字元,所以返回true。

str=「abcd」,exp=「.*」。exp中』*』的前乙個字元是』.』,所以可表示任意數量的』.』字元,所以當exp是「....」時與「abcd」匹配,所以返回true。

str=「」,exp=「..*」。exp中』*』的前乙個字元是』.』,可表示任意數量的』.』字元,但是」.*」之前還有乙個』.』字元,該字元不受『*』的影響,所以str起碼得有乙個字元才能被exp匹配。所以返回false。  

1 #include2 #include3 #include

4using

namespace

std;

5int

main()623

else

if (exp[j] == '*'

)2431 j++;

32}

33else34

42else

4346}47

}484950

if(tag)

5155 cout<<"no"

<56return0;

57}58//

懵懵懂懂中,不曉得有多適用

字串匹配

題目描述 讀入資料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...