[C++] Clean and precise code [83.29% Faster and 98.13% less memory usage]
```\nint sol=0;\n    void solve(vector& arr, vector& count, int i, int &ans)\n    {\n        if(i==arr.size())\n        {\n            sol=max(sol, ans);\n     
```\nint sol=0;\n    void solve(vector<string>& arr, vector<int>& count, int i, int &ans)\n    {\n        if(i==arr.size())\n        {\n            sol=max(sol, ans);\n            return;\n        }\n        //recursive without adding string\n        solve(arr, count, i+1, ans);\n        \n        //adding string\n        for(int k=0; k<arr[i].length(); k++)\n        {\n            if(count[arr[i][k]-\'a\']>0)\n            {\n                //deleting the previous added elements from count\n                for(int j=0; j<k; j++)\n                    count[arr[i][j]-\'a\']--;\n                return;\n            }\n            count[arr[i][k]-\'a\']++;\n        }\n        ans+=arr[i].length();\n        \n        //recursive with added string\n        solve(arr, count, i+1, ans);\n        \n        //backtracking\n        ans-=arr[i].length();\n        for(int k=0; k<arr[i].length(); k++)\n        {\n            count[arr[i][k]-\'a\']--;\n        }\n    }\n    int maxLength(vector<string>& arr) {\n        sol=0;\n        int ans=0;\n        //vector to store count of elements\n        vector<int> count(26, 0);\n        solve(arr, count, 0, ans);\n        return sol;\n    }
['Backtracking', 'C']