Bobert0032

Stupid

Aug 30th, 2022
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | Source Code | 0 0
  1. Hash get_Hash_without(int l, int r, vector<Hash>& w)
  2. {
  3.   if (l == 0)
  4.   {
  5.     Hash x = get_Hash(r + 1, w.size() - 1, w);
  6.     return x;
  7.   }
  8.   if (r == 0)
  9.     return w[l - 1];
  10.   return w[l - 1] * p[((w.size() - 1) - r)] + get_Hash(r + 1, w.size() - 1, w);
  11. }
  12.  
  13. int idx_rev(int x, int n)
  14. {
  15.   return n - x - 1;
  16. }
  17. string get_except(int l, int r, string& s)
  18. {
  19.   string ans = s.substr(0, l) + s.substr(r + 1, kol(r + 1, s.size() - 1));
  20.   return ans;
  21. }
  22. string stupid(string& s)
  23. {
  24.   vector<Hash> h_str_s = V_Hash(s);
  25.   reverse(all(s));
  26.   vector<Hash> h_rev_s = V_Hash(s);
  27.   reverse(all(s));
  28.   if (get_Hash(0, s.size() - 1, h_str_s) == get_Hash(0, s.size() - 1, h_rev_s))
  29.   {
  30.     return s;
  31.   }
  32.   string ans;
  33.   bool found = false;
  34.   for (int len = 1; len <= s.size(); ++len)
  35.   {
  36.     for (int i = 0; i <= s.size() - len; ++i)
  37.     {
  38.       if (get_Hash_without(i, i + len - 1, h_str_s) == get_Hash_without( idx_rev(i + len - 1, s.size()), idx_rev(i, s.size()), h_rev_s))
  39.       {
  40.         found = true;
  41.         ans = get_except(i, i + len - 1, s);
  42.         break;
  43.       }
  44.     }
  45.     if (found)
  46.       break;
  47.   }
  48.   return ans;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment