private void go(char[] a, int i, List<String> res) {
        if (i >= a.length)
            return;
        if (Character.isDigit(a[i])) {
            go(a, i + 1, res);
            return;
        }

        if (Character.isLowerCase(a[i])) {
            go(a, i + 1, res);
            a[i] = Character.toUpperCase(a[i]);
            String upper = new String(a);
            go(upper.toCharArray(), i + 1, res);
        } else {
            go(a, i + 1, res);
            a[i] = Character.toLowerCase(a[i]);
            go(new String(a).toCharArray(), i + 1, res);
        }
        res.add(new String(a));
    }
Why Did you create this class? what does it do?
src/problems/easy/LetterCasePermutation.java