1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| void solve() { char s[N], p[N]; int lena, lenb; cin >> lena >> s + 1 >> lenb >> p + 1; for (int i = 1; i <= lenb; i++) { bool flag = true; for (int j = 1; j <= lena; j++) if (p[i + j - 1] != s[j]) { flag = false; break; } if (flag) cout << i - 1 << ' '; } }
|
朴素做法在极端条件下的时间复杂度为 O(n×m)