Ilya_Bykonya

Untitled

May 28th, 2024
712
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | Source Code | 0 0
  1.  
  2. std::vector<int> permutation_positions(const std::string& s1, const std::string& s2) {
  3.     if(s1.length() < s2.length())
  4.         return {};
  5.  
  6.     std::map<char, int64_t> letters{};
  7.     for(auto letter: s2) { ++letters[letter]; }
  8.     for(size_t index = 0; index < s2.length(); ++index) {
  9.         --letters[s1[index]];
  10.     }
  11.  
  12.     std::vector<int> results{};
  13.     for(size_t index = 0; index < (s1.length() - s2.length()); ++index) {
  14.         std::cout << letters << std::endl;
  15.         if(std::all_of(letters.begin(), letters.end(), [](const auto& pair) { return pair.second == 0; })) {
  16.             results.push_back(index);
  17.         }
  18.  
  19.         --letters[s1[index + s2.length()]];
  20.         ++letters[s1[index]];
  21.     }
  22.     if(std::all_of(letters.begin(), letters.end(), [](const auto& pair) { return pair.second == 0; })) {
  23.         results.push_back(s1.length() - s2.length());
  24.     }
  25.  
  26.     return results;
  27. }
  28.  
Advertisement
Add Comment
Please, Sign In to add comment