题目:
解析:
代码:
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
相关推荐
QiLinkOS7 小时前
第三视觉理解徐玉生与他的商业活动(30)疯狂打码的少年8 小时前
【操作系统】页面置换算法(OPT/FIFO/LRU)小O的算法实验室8 小时前
2026年CIE,优化客货协同运输:综合地铁系统的列车容量动态分配Coder_Shenshen9 小时前
西门子S7CommPlus协议鉴权算法原理与流程详解硕风和炜10 小时前
【LeetCode: 2492. 两个城市间路径的最小分数 + DFS】我是一颗柠檬11 小时前
【Java项目技术亮点】加权轮询负载均衡算法灯厂码农11 小时前
C语言动态内存分配完全指南(malloc、calloc、realloc、free)凯瑟琳.奥古斯特12 小时前
K次取反最大化数组和解法(力扣1005)Jerry12 小时前
LeetCode 203. 移除链表元素地平线开发者13 小时前
征程 6 | 工具链 QAT ObserverBase 源码解析
