leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
1625.cpp (762B)
0 class Solution {
1 unordered_set<string> seen;
2 string res;
4 string rotate(string s, int b) {
5 reverse(s.begin(), s.end());
6 reverse(s.begin(), s.begin() + b);
7 reverse(s.begin() + b, s.end());
8 return s;
9 }
11 string add(string s, int x) {
12 for (int i = 1; i < s.size(); i += 2)
13 s[i] = '0' + ((s[i] & 0xF) + x) % 10;
14 return s;
15 }
17 public:
18 void dfs(const int a, const int b, const string &s) {
19 if (seen.count(s)) return;
20 res = min(res, s);
21 seen.insert(s);
22 dfs(a, b, rotate(s, b));
23 dfs(a, b, add(s, a));
24 }
26 string findLexSmallestString(const string &s, int a, int b) {
27 res = s;
28 dfs(a, b, s);
29 return res;
30 }
31 };