原题链接
https://leetcode-cn.com/problems/letter-case-permutation/submissions/
思路:
类似于字符串全排列,只是不需要变换位置,改成了转换大小写
代码
class Solution {
public List<String> letterCasePermutation(String s) {
List<String> result = new ArrayList<>();
if(s == null) {
return result;
}
dfs(s.toCharArray(), 0, result);
return result;
}
public void dfs(char[] charArray, int index, List<String> result) {
if (index == charArray.length) {
result.add(String.valueOf(charArray));
return;
}
char temp = charArray[index];
if ((temp >= 'a' && temp <= 'z')
|| (temp >= 'A' && temp <= 'Z')){
//分别用大小写递归遍历
charArray[index] = Character.toLowerCase(temp);
dfs(charArray, index+1, result);
charArray[index] = Character.toUpperCase(temp);
dfs(charArray, index+1, result);
} else {
dfs(charArray, index+1, result);
}
}
}