fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. using namespace std;
  5.  
  6. vector<int> naiveSearch(const string& A, const string& B) {
  7. vector<int> positions;
  8. int n = A.length();
  9. int m = B.length();
  10.  
  11. // Duyệt qua từng vị trí có thể bắt đầu của xâu B trong xâu A
  12. for (int i = 0; i <= n - m; i++) {
  13. bool match = true;
  14.  
  15. // So sánh đoạn con A[i:i+m] với B
  16. for (int j = 0; j < m; j++) {
  17. if (A[i + j] != B[j]) {
  18. match = false;
  19. break;
  20. }
  21. }
  22.  
  23. // Nếu đoạn con khớp, lưu lại vị trí
  24. if (match) {
  25. positions.push_back(i + 1); // Chỉ số 1-based
  26. }
  27. }
  28. return positions;
  29. }
  30.  
  31. int main() {
  32. ios_base::sync_with_stdio(false);
  33. cin.tie(nullptr);
  34. string a;
  35. string b;
  36. cin >> a >> b;
  37. vector<int> positions = naiveSearch(a, b);
  38. for (int pos : positions) {
  39. cout << pos << ' ';
  40. }
  41. }
Success #stdin #stdout 0s 5292KB
stdin
aaaaa
aa
stdout
1 2 3 4