题目:
解析:
代码:
private List<String> ret;private StringBuffer path;public List<String> letterCasePermutation(String s) {ret = new ArrayList<>();path = new StringBuffer();dfs(s,0);return ret;}private void dfs(String s, int pos){if(pos == s.length()){ret.add(path.toString());return;} char ch = s.charAt(pos);//改变if(ch < '0' || ch > '9'){char tmp = change(ch);path.append(tmp);dfs(s,pos+1);path.deleteCharAt(path.length()-1);//恢复现场}//不变path.append(ch);dfs(s,pos+1);path.deleteCharAt(path.length()-1);//恢复现场} private char change(char ch){if(ch >= 'a' && ch <= 'z') return ch -= 32;//小写转大写else return ch += 32;//大写转小写}