List<String> ans;
public List<String> letterCasePermutation(String s) {
ans=new ArrayList<>();
dfs(0,s.toCharArray());
return ans;
}
void dfs(int idx,char[] cs){
if(idx==cs.length){
ans.add(new String(cs));
return;
}
char c=cs[idx];
//当前字符是否为字母
if(c<'0'||c>'9'){
dfs(idx+1,cs);//以原字母递归
//反转字母大小写递归
if(c>='a'&&c<='z')
cs[idx]=(char)(cs[idx]-32);
else
cs[idx]=(char)(cs[idx]+32);
}
dfs(idx+1,cs);//不为字母或反转后的递归
}
2022.10.30-----leetcode.784
最新推荐文章于 2024-07-25 11:27:31 发布