現在考慮所有可能的字串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 ...