题目:
解析:
代码:
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
相关推荐
bachelores1 小时前
数据结构-排序是Dream呀1 小时前
深度学习算法:开启智能时代的钥匙tan180°1 小时前
Cpp::C++11右值引用与移动构造(30)2401_858286112 小时前
123.【C语言】数据结构之快速排序挖坑法和前后指针法pzx_0013 小时前
【集成学习】Boosting算法详解Channing Lewis3 小时前
经典编程题:服务器广播Ritsu栗子3 小时前
代码随想录算法训练营day27小冯的编程学习之路3 小时前
【LeetCode】:稀疏相似度【困难】羊小猪~~3 小时前
C/C++语言基础--C++STL库算法记录(质变算法、非质变算法、查找、排序、排列组合、关系算法、集合算法、堆算法等)qystca3 小时前
炸弹 (boom.c)(100分双端递推+分割线优化)