Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define INF (int) 1e9
  3. using namespace std;
  4.  
  5. map<string, int> memo;
  6. int solution(string &s);
  7.  
  8. int remember(string &s) {
  9.     if (!memo.count(s))
  10.     {
  11.         memo[s] = solution(s);
  12.     }
  13.     return memo[s];
  14. }
  15.  
  16. int solution(string &s) {
  17.     int ans = 0;
  18.     for (int i = 0; i < (int) s.size() - 1; i++)
  19.     {
  20.         if (s[i] > s[i + 1])
  21.         {
  22.             if (ans == 0)
  23.             {
  24.                 ans = INF;
  25.             }
  26.             string x = s.substr(0, i) + s.substr(i + 1);
  27.             string y = s.substr(0, i + 1) + s.substr(i + 2);
  28.             ans = min({ans, 1 + remember(x), 1 + remember(y)});
  29.         }
  30.     }
  31.     return ans;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement