可以用回溯来做,不过就两种 情况,把目前在遍历的字母变成大写或者不变大写两种,所以不用for循环
class Solution {
List<String> res=new ArrayList<String>();
public List<String> letterCasePermutation(String S) {
if(S.length()==0)return res;
core(S.toCharArray(),0);
return res;
}
public void core(char[] s,int index){
if(index==s.length){
res.add(String.valueOf(s));
return;
}
if(s[index]-'0'>=0 && s[index]-'9'<=0){
core(s,index+1);
}else{
s[index]=Character.toUpperCase(s[index]);
core(s,index+1);
s[index]=Character.toLowerCase(s[index]);
core(s,index+1);
}
}
}