Advertisement
Nita_Cristian

2019 anagrame - minimum window

Jan 30th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. ifstream fin("anagrame.in");
  6. ofstream fout("anagrame.out");
  7.  
  8. string s, t;
  9. int p, n, necesare[101], ap[101], gasite[101], cate, lmin, anagrame;
  10.  
  11. int main()
  12. {
  13.     fin >> p >> s >> t;
  14.     /// prima cerinta: daca j-i+1 == t.length
  15.     /// a doua cerinta: calculez lmin
  16.     n = s.length();
  17.     lmin = INT_MAX;
  18.     for(int i = 0; i < t.length(); i++)
  19.     {
  20.         necesare[t[i]]++;
  21.     }
  22.     for(int i = 0, j = 0; j < n; j++)
  23.     {
  24.         gasite[s[j]]++;
  25.  
  26.         if(gasite[s[j]] <= necesare[s[j]])
  27.         {
  28.             cate++;
  29.         }
  30.         if(cate >= t.length())
  31.         {
  32.             while(gasite[s[i]] > necesare[s[i]] || necesare[s[i]] == 0)
  33.             {
  34.                 gasite[s[i]]--;
  35.                 i++;
  36.             }
  37.             if(j-i+1 == t.length())
  38.                 anagrame++;
  39.         }
  40.     }
  41.     cout << anagrame;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement