b bd 字串匹配(雙層迴圈雙指標)

2022-02-24 13:13:17 字數 488 閱讀 5520

現在考慮所有可能的字串b,有多少種可以在字串a中完成匹配。

a = "00010001", b = "??"

字串b可能的字串是"00","01","10","11",只有"11"沒有出現在字串a中,所以輸出3

思路:暴力列舉a的每乙個長度為m的子串,然後檢查是否能匹配b

def solve(a,b):

n,m,ans=len(a),len(b),0

c=for i in range(n-m+1):

c,s=0,a[i:i+m]

for j in range(m):

if s[j]==b[j] or b[j]=='?': c+=1

else: break

if c==m: c.add(s)

return len(c)-1

print(solve(input(),input()))

字串的排列(雙指標)

先給題 給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 ...

雙指標,KMP 實現字串定位

像我這種菜雞就喜歡用暴力的方法來求解,我這個方法實際上就是乙個字串乙個字串的比對,如果相同就進入迴圈乙個乙個字串進行比對,如果比對完全匹配就返回匹配結果反之。func strstr haystack string needle string int 字串比對開始位置 t 0 開始遍歷haystack...

字串匹配

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