Tue. Mar 28th, 2023

# LeetCode – BackTracking – Letter Case Permutation

#### ByKnight Coderz

Jun 21, 2020

Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string.  Return a list of all possible strings we could create.

```Examples:
Input: S = "a1b2"
Output: ["a1b2", "a1B2", "A1b2", "A1B2"]

Input: S = "3z4"
Output: ["3z4", "3Z4"]

Input: S = "12345"
Output: ["12345"]
```

Note:

• `S` will be a string with length between `1` and `12`.
• `S` will consist only of letters or digits.
``class Solution {    public List<String> letterCasePermutation(String S) {        List<String> results = new ArrayList<String>();        getCombinations(0,results,S,"");        return results;    }        public void getCombinations(int str_len, List<String> results, String S, String current) {                if (str_len == S.length()){            results.add(current);            return;        }        char c = S.charAt(str_len);        if(Character.isLetter(c)){            getCombinations(str_len+1,results,S,current+Character.toLowerCase(c));            getCombinations(str_len+1,results,S,current+Character.toUpperCase(c));        }else{            getCombinations(str_len+1,results,S,current+c);        }    }}``