原题链接
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);
}
}
}
该博客主要探讨了LeetCode中的一个问题——字母大小写的全排列。通过提供的一种解决方案,详细解释了如何使用深度优先搜索(DFS)算法实现字符串中字符的大小写变换,从而得到所有可能的排列组合。此问题涉及字符串处理和递归算法,对于提升编程技巧具有一定的实践价值。
349

被折叠的 条评论
为什么被折叠?



