题目:
解析:
代码:
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
相关推荐
黎阳之光13 小时前
AI数智筑防线 绿色科技启新篇,如何用硬核技术赋能生态安全双升级2201_7586426413 小时前
自定义内存检测工具Westward-sun.13 小时前
矿物分类实战(一):从异常值到标准化——数据清洗全流程拆解D_C_tyu14 小时前
HTML | 结合Canvas开发具有智能寻路功能的贪吃蛇小游戏实战详解小王不爱笑13214 小时前
HashMap 扩容全流程代码探秘者14 小时前
【算法篇】4.前缀和计算机安禾14 小时前
【数据结构与算法】第4篇:算法效率衡量:时间复杂度和空间复杂度Oueii14 小时前
嵌入式LinuxC++开发sw12138914 小时前
嵌入式C++驱动开发2501_9249526914 小时前
C++中的适配器模式
