标签:输出 返回 示例 判断 str problem 字母 字符 ase
示例:
输入:S = "a1b2"
输出:["a1b2", "a1B2", "A1b2", "A1B2"]
输入:S = "3z4"
输出:["3z4", "3Z4"]
输入:S = "12345"
输出:["12345"]
提示:
S 的长度不超过12。
S 仅由数字和字母组成。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/letter-case-permutation
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public List<String> letterCasePermutation(String S) {
List<String> res = new ArrayList<>();
char[] charArray = S.toCharArray();
dfs(charArray,0,res);
return res;
}
void dfs(char[] charArray,int index,List<String>res){
if(index == charArray.length){
res.add(new String(charArray));
return;
}
dfs(charArray,index+1,res); //进入下一个分支
if(Character.isLetter(charArray[index])){ //判断是否为字母
charArray[index] ^= 1 << 5; //小写变大写,大写变小写
dfs(charArray,index+1,res); //进入下一个分支
}
}
}
标签:输出 返回 示例 判断 str problem 字母 字符 ase
原文地址:https://www.cnblogs.com/xiaofff/p/14351886.html