子字串匹配

2021-10-21 18:05:39 字數 766 閱讀 4958

給定兩個字串s和t,其中t是s的子字串,s的子字串是字串都取自s,並且保持在s的位置的相對順序,但不需要是連續的。比如,s="abcdef", t="bd"

要求找出t在s中匹配的字串數量

input: s="rabbbit" t="rabbit"

output:3

這道題類似於求最長公共子串行(lcs)

類似:不需要連續,只需要相對順序相同

不同:lcs是子串行不確定,找相同序列的最長長度;

此題是子串行已定,母串必須包括字串的全部,問的是個數

lcs

/**

* dp[i][j]代表母串的前i個字元和子串前j個字元匹配最長長度

*/for

(int i =

1; i <= len1; i++

)else

}}

public

intnumberofstring

(string s, string t)

}int len1 = t.

length()

;int len2 = s.

length()

;for

(int i =

1; i <= len1; i++

)else}}

return dp[len1]

[len2]

;}

字串匹配

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