Leetcode 784. Letter Case Permutation
题目链接: Letter Case Permutation
难度:Medium
题目大意:
给出一个只包含数字和字母的字符串,可以将字母的大小写改变,也可以不变,求所有可能生成的字符串。
思路:
用DFS进行求解,遍历字符串,如果碰到字母,该字母可以变成大写字母或者小写字母,然后进行DFS遍历。
代码
class Solution {
public List<String> letterCasePermutation(String s) {
char[] str=s.toCharArray();
List<String> res=new ArrayList<>();
dfs(res,str,0);
return res;
}
public void dfs(List<String> res,char[] str,int pos){
if(pos==str.length){
res.add(new String(str));
return;
}
if(str[pos]>='0'&&str[pos]<='9'){
dfs(res,str,pos+1);
}
else{
str[pos]=Character.toLowerCase(str[pos]);
dfs(res,str,pos+1);
str[pos]=Character.toUpperCase(str[pos]);
dfs(res,str,pos+1);
}
}
}