Pagini recente » Cod sursa (job #1628177) | Cod sursa (job #321427) | Cod sursa (job #1071094) | Cod sursa (job #1329685) | Cod sursa (job #2222389)
#include <iostream>
#include <fstream>
#include <vector>
#include <cstdlib>
#include <queue>
using namespace std;
int main() {
std::string first;
std::string second;
ifstream input("strmatch.in");
ofstream output("strmatch.out");
input >> second;
input >> first;
int index_first = 0;
int index_second = 0;
vector<int> aparitionsIndices;
while (index_first != first.size() - 1) {
if (first[index_first] == second[index_second]) {
index_second++;
} else {
index_second = 0;
}
if (index_second == second.size()) {
aparitionsIndices.push_back(index_first);
index_second = 0;
if (first[index_first] == second[index_second])
index_second++;
}
index_first++;
}
output << aparitionsIndices.size() << endl;
for (int index : aparitionsIndices)
output << index - second.size() + 1 << " ";
input.close();
output.close();
return 0;
}