题目:
解析:
代码:
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
相关推荐
什巳12 小时前
JAVA练习309- 二叉树的层序遍历什巳14 小时前
JAVA练习306- 翻转二叉树smj2302_7968265214 小时前
解决leetcode第3989题网格中保持一致的最大列数巧克力男孩dd16 小时前
Python超典型练习题(第一次作业)爱刷碗的苏泓舒16 小时前
平方根信息滤波:矩阵推导及 GNSS 参数估计应用想做小南娘,发现自己是女生喵17 小时前
第 2 章 顺序表和 vector艾醒17 小时前
2026年第29周(7.13-7.19)AI全复盘:技术突破、行业趣闻翻车、算力服务器商业动态雪碧聊技术18 小时前
动态规划算法—01背包问题bu_shuo18 小时前
c与cpp中的argc和argv普贤莲花18 小时前
【2026年第29周---写于20260718】---整理,断舍离
