Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- std::vector<int> permutation_positions(const std::string& s1, const std::string& s2) {
- if(s1.length() < s2.length())
- return {};
- std::map<char, int64_t> letters{};
- for(auto letter: s2) { ++letters[letter]; }
- for(size_t index = 0; index < s2.length(); ++index) {
- --letters[s1[index]];
- }
- std::vector<int> results{};
- for(size_t index = 0; index < (s1.length() - s2.length()); ++index) {
- std::cout << letters << std::endl;
- if(std::all_of(letters.begin(), letters.end(), [](const auto& pair) { return pair.second == 0; })) {
- results.push_back(index);
- }
- --letters[s1[index + s2.length()]];
- ++letters[s1[index]];
- }
- if(std::all_of(letters.begin(), letters.end(), [](const auto& pair) { return pair.second == 0; })) {
- results.push_back(s1.length() - s2.length());
- }
- return results;
- }
Advertisement
Add Comment
Please, Sign In to add comment