Solution to Maximum Length of a Concatenated String with Unique Characters problem.

class Solution {
    
    int maxLen = 0;
    
    public int maxLength(List<String> arr) {
        findMaxLen(arr, 0, "");
        
        return maxLen;
    }
    
    private void findMaxLen(List<String> arr, int ndx, String curStr) {
		if(!isUnique(curStr)) {
			return;
		} 
		maxLen = Math.max(maxLen, curStr.length());
		
		for(int i=ndx;i<arr.size();i++) {
			if(isUnique(arr.get(i))) {
				findMaxLen(arr, i + 1, curStr + arr.get(i));
			}
		}
	}

	private static boolean isUnique(String curStr) {
		int[] cnt = new int[26];
		for(char c : curStr.toCharArray()) {
			if (++cnt[c - 'a'] > 1) return false;
		}
		
		return true;
	}
}