for (int i = index + 1; i <= s.size(); i++) { if (isPalindrome(s, index, i - 1)) { path.push_back(s.substr(index, i - index)); dfs(i, s); path.pop_back(); } } }
boolisPalindrome(string& s, int l, int r){ while (l < r) { if (s[l] != s[r]) { returnfalse; } l++; r--; } returntrue; } };