0784 - Letter Case Permutation
0784 - Letter Case Permutation
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. You can return the output in any order.
Examples
Input: s = "a1b2" Output: ["a1b2","a1B2","A1b2","A1B2"]
Input: s = "3z4" Output: ["3z4","3Z4"]
Input: s = "12345" Output: ["12345"]
Input: s = "0" Output: ["0"]
Constraints:
s will be a string with length between 1 and 12. s will consist only of letters or digits.
Java Solution (Backtracking)
class Solution {
public List<String> letterCasePermutation(String s) {
List<String> results = new ArrayList<>();
backtrack(s.toCharArray(), results, 0);
return results;
}
private void backtrack(char[] c, List<String> results, int index) {
results.add(new String(c));
for(int i = index; i < c.length; i++) {
if(Character.isAlphabetic(c[i])) {
char temp = c[i];
c[i] = Character.isUpperCase(c[i]) ? Character.toLowerCase(c[i]) : Character.toUpperCase(c[i]);
backtrack(c, results, i+1);
c[i] = temp;
}
}
}
}
Last updated