Cracking the Safe LeetCode solution in C++
1class Solution {2public:3int total;4unordered_set<string> st;5bool func(int i, int k, int n, string &s) {6if (i == total) return 1;78for (int j = 0; j < k; j++) {9s.push_back(j + '0');1011if (s.size() >= n) {12string a = s.substr(s.size() - n);13if (st.find(a) == st.end()) {14st.insert(a);15if (func(i + 1, k, n, s)) return 1;16st.erase(a);17}18} else if (func(i, k, n, s))19return 1;2021s.pop_back();22}2324return 0;25}26string crackSafe(int n, int k) {27total = pow(k, n);28string s;29func(0, k, n, s);30return s;31}32};