### nhận xét: có phải là B là xâu con của A, nên B sẽ tương ứng với mọi xâu con độ dài |B| trên xâu con A
- gọi n, m lần lượt là số lượng kí tự xâu A và B
- từ đó ta lưu mỗi vị trí xuất hiện kí tự A[i] vào mảng đánh dấu vị trí gọi là pos[a[i]]
- với mỗi b[i] nó chỉ có thể xuất hiện từ vị trí tương ứng trên xâu A là từ i đến n - m + i ta cần đếm
- số lượng kí tự b[i] xuất hiện trong vị trí này và cộng vào kết quả
code mẫu:
cpp#∈clude<bitsstdc++.h>#def∈elllonglong#def∈epbpushbackusingnamespacestd;→−−→r<→−−→r<ll⟩e(123,→−−→r<ll>(0));∫ma∈(){str∈ga,b;c∈⟩a⟩b;lln=a.size(),m=b.size();for(∫i=0;i<n;i++){llc=a[i];e[c].pb(i);}llans=0;for(∫i=0;i<m;i++){llr=n−m+i;lll=i;llc=b[i];au→p1=lowerbound(e[c].beg∈(),e[c].end(),l);au→p2=lowerbound(e[c].beg∈(),e[c].end(),r);if(p1==e[c].end())cont∈ue;if(p2==e[c].end())−−p2;if(⋅p2>r){−−p2;if(p2<p1)cont∈ue;}llsize=p2−p1+1;ans+=size;}cout⟨ans;}