题目:
解析:
代码:
javaprivate 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;//大写转小写 }
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>字母大小写全排列
robin_suli2025-01-10 14:10
相关推荐
修己xj32 分钟前
探索设计模式的宝库:Java-Design-Patterns鲨鱼辣椒_TUT35 分钟前
MySQL连接算法和小表驱动大表的原理设计师小聂!1 小时前
力扣热题100------21.合并两个有序链表এ᭄画画的北北2 小时前
力扣-1.两数之和shenghaide_jiahu2 小时前
数学建模——递归和动态规划凯子坚持 c2 小时前
动态规划专题:详解二维费用背包问题——以“一和零”与“盈利计划”为例黑色的山岗在沉睡3 小时前
P1948 [USACO08JAN] Telephone Lines S快去睡觉~3 小时前
力扣301:删除无效的括号技术炼丹人5 小时前
从RNN为什么长依赖遗忘到注意力机制的解决方案以及并行