Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define INF (int) 1e9
- using namespace std;
- map<string, int> memo;
- int solution(string &s);
- int remember(string &s) {
- if (!memo.count(s))
- {
- memo[s] = solution(s);
- }
- return memo[s];
- }
- int solution(string &s) {
- int ans = 0;
- for (int i = 0; i < (int) s.size() - 1; i++)
- {
- if (s[i] > s[i + 1])
- {
- if (ans == 0)
- {
- ans = INF;
- }
- string x = s.substr(0, i) + s.substr(i + 1);
- string y = s.substr(0, i + 1) + s.substr(i + 2);
- ans = min({ans, 1 + remember(x), 1 + remember(y)});
- }
- }
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement