C++ || Bactracking || Easy to understand
\nint ans=0;\n    bool isPal(string& s)\n    {\n        int i=0,j=s.length()-1;\n        while(i<=j)\n        {\n            if(s[i]!=s[j])\n            return 
```\nint ans=0;\n    bool isPal(string& s)\n    {\n        int i=0,j=s.length()-1;\n        while(i<=j)\n        {\n            if(s[i]!=s[j])\n            return false;\n            i++;\n            j--;\n        }\n        return true;\n    }\n    void helper(string& s,string& s1,string& s2,int i)\n    {\n        if(i>=s.size())\n        {\n            if(isPal(s1)&&isPal(s2))\n            {\n                ans=max(ans,(int)(s1.size())*(int)(s2.size()));\n                \n            }\n            return;\n        }\n        \n        s1+=s[i];\n        helper(s,s1,s2,i+1);\n        s1.pop_back();\n        \n        s2+=s[i];\n        helper(s,s1,s2,i+1);\n        s2.pop_back();\n        \n        helper(s,s1,s2,i+1);\n    }\n    int maxProduct(string s) \n    {\n        string s1="",s2="";\n        int i=0;\n        helper(s,s1,s2,i);\n        return ans;\n    }\n\t```
[]