C++||Backtracking|| Easy to Understand
```\nclass Solution {\npublic:\n    long long res;\n    bool ispal(string &s)\n    {\n        int start=0,end=s.size()-1;\n        while(start=s.size())\n      
```\nclass Solution {\npublic:\n    long long res;\n    bool ispal(string &s)\n    {\n        int start=0,end=s.size()-1;\n        while(start<end)\n        {\n            if(s[start]!=s[end])\n                return false;\n            start++;\n            end--;\n        }\n        return true;\n    }\n    void backtrack(string s,int idx,string &s1,string &s2)\n    {\n        if(idx>=s.size())\n        {\n            if(ispal(s1)&&ispal(s2))\n            {\n                long long val=s1.size()*s2.size();\n                res=max(val,res);\n            }\n            return ;\n        }\n        s1.push_back(s[idx]);\n        backtrack(s,idx+1,s1,s2);\n        s1.pop_back();\n        \n        s2.push_back(s[idx]);\n        backtrack(s,idx+1,s1,s2);\n        s2.pop_back();\n        \n        backtrack(s,idx+1,s1,s2);\n    }\n    int maxProduct(string s)\n    {\n        string s1="",s2="";\n        backtrack(s,0,s1,s2);\n        return res;\n        \n    }\n};\n// if you like the solution plz upvote.
['Backtracking', 'C']