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; 3 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 } 10 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 } 16 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 } 25 26 string findLexSmallestString(const string &s, int a, int b) { 27 res = s; 28 dfs(a, b, s); 29 return res; 30 } 31 };