JavaScript Solution - Backtracking Approach
\nvar maxLength = function(arr) {\n    const n = arr.length;\n    let maxLen = 0;\n    \n    backtrack(0, "");\n    \n    return maxLen;\n    \n    function bac
```\nvar maxLength = function(arr) {\n    const n = arr.length;\n    let maxLen = 0;\n    \n    backtrack(0, "");\n    \n    return maxLen;\n    \n    function backtrack(start, prevStr) {\n        maxLen = Math.max(maxLen, prevStr.length);\n        \n        if (start === n) return; \n        \n        for (let i = start; i < n; i++) {\n            const word = arr[i];\n            \n            if (isUnique(prevStr + word)) backtrack(i + 1, prevStr + word);\n        }\n    }\n    \n    function isUnique(str) {\n        let bits = 0 | 0;\n\n        for (const char of str) {\n            const index = char.charCodeAt(0) - 97;\n            \n            if (bits & (1 << index)) return false;\n            bits |= (1 << index);\n        }\n        \n        return true;\n    }\n};\n```
['Backtracking', 'JavaScript']