DAILY LEETCODE SOLUTION || EASY C++ SOLUTION
\n// BIT MANIPULATION SOLUTION\nclass Solution {\npublic:\n    int maxLength(vector<string>& arr) {\n        int maxlength=0;\n        int n=arr.size();\n      
```\n// BIT MANIPULATION SOLUTION\nclass Solution {\npublic:\n    int maxLength(vector<string>& arr) {\n        int maxlength=0;\n        int n=arr.size();\n        int nos=pow(2,n)-1;\n        for(int num=0;num<=nos;num++)\n        {\n            vector<string> temp;\n            for(int i=0;i<n;i++)\n            {\n                int bit=(num&(1<<i));\n                if(bit) temp.push_back(arr[i]);\n            }\n            string s1="";\n            for(int i=0;i<temp.size();i++)\n            {\n                s1+=temp[i];\n            }\n            int freq[26]={0};\n            for(int i=0;i<s1.size();i++)\n            {\n                freq[s1[i]-\'a\']++;\n            }\n            int cnt=0;\n            for(int i=0;i<26;i++)\n            {\n                if(freq[i]==1)\n                {\n                    cnt++;\n                }\n                else if(freq[i]>1)\n                {\n                    cnt=0;\n                    break;\n                }\n            }\n            maxlength=max(maxlength,cnt);            \n        }\n        return maxlength;\n    }\n};\n```\n```\n//BACKTRACKING SOLUTION\nclass Solution {\npublic:\n    void fun(int idx,vector<string>& arr,vector<string>& temp,int& maxlength)\n    {\n        if(idx==arr.size())\n        {\n            string s1="";\n            for(int i=0;i<temp.size();i++)\n            {\n                s1+=temp[i];\n            }\n            int freq[26]={0};\n            for(int i=0;i<s1.size();i++)\n            {\n                freq[s1[i]-\'a\']++;\n            }\n            int cnt=0;\n            for(int i=0;i<26;i++)\n            {\n                if(freq[i]==1)\n                {\n                    cnt++;\n                }\n                else if(freq[i]>1)\n                {\n                    cnt=0;\n                    return;\n                }\n            }\n            maxlength=max(maxlength,cnt);\n            return;\n        }\n        temp.push_back(arr[idx]);\n        fun(idx+1,arr,temp,maxlength);\n        temp.pop_back();\n        fun(idx+1,arr,temp,maxlength);\n    }\n    int maxLength(vector<string>& arr) {\n        vector<string> temp;\n        int maxlength=0;\n        fun(0,arr,temp,maxlength);\n        return maxlength;\n    }\n};\n```
['Backtracking', 'Bit Manipulation', 'Recursion', 'C']