1class Solution {2public:3unordered_set<string> st;4int ans = 0;5void dfs(string &s, int idx) {6if (st.size() > ans) ans = st.size();7if (idx >= s.length()) return;8string str = "";9for (int i = idx; i < s.length(); i++) {10str += s[i];11if (st.find(str) == st.end()) {12st.insert(str);13dfs(s, i + 1);14st.erase(str);15}16}17}1819int maxUniqueSplit(string s) {20dfs(s, 0);21return ans;22}23};