news 2026/4/23 12:20:42

leetcode 784. Letter Case Permutation 字母大小写全排列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 784. Letter Case Permutation 字母大小写全排列

Problem: 784. Letter Case Permutation 字母大小写全排列

解题过程

两种方案的,1、回溯,每次替换即可 2、位运算,整数的二进制1代表反转,去重即可的

Code

class Solution { public: vector<string> tr; unordered_map<string, bool> ump; int ch[16]; void dfs(string s, int cnt) { if(ump.count(s)==0) { tr.push_back(s); } ump[s] = true; if(cnt==s.size()) return; if(ch[cnt] < 0) { dfs(s, cnt + 1); } else { s[cnt] = tolower(s[cnt]); dfs(s, cnt + 1); s[cnt] = toupper(s[cnt]); dfs(s, cnt + 1); } } vector<string> letterCasePermutation(string s) { for(int i = 0; i < s.size(); i++) { if(isdigit(s[i])) { ch[i] = -1; } else if(s[i]>='a' && s[i]<='z') { ch[i] = 1; } else { ch[i] = 2; } } dfs(s, 0); return tr; int n = s.size(); unsigned int end = pow(2, n) - 1, tmp; unordered_map<char, char> pam; for(char c = 'a'; c <= 'z'; c++) { pam[c] = toupper(c); } for(char c = 'A'; c <= 'Z'; c++) { pam[c] = tolower(c); } string pre, tail, scp = s; // tr.push_back(s); unordered_set<string> ret; ret.insert(s); for(unsigned int i = 0; i <= end; i++) { tmp = i; s = scp; for(int j = 0; j < n; j++) { if( (tmp&1) == 1 && isalpha(s[j]) ) { s[j] = pam[s[j]]; ret.insert(s); } else if((tmp&1) == 1 && isdigit(s[j])){ break; } tmp = ( tmp >> 1 ); } } for(auto& k : ret) { tr.push_back(k); } return tr; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:48:41

2025最新!8个AI论文工具测评:研究生开题报告必备推荐

2025最新&#xff01;8个AI论文工具测评&#xff1a;研究生开题报告必备推荐 2025年AI论文工具测评&#xff1a;为研究生开题报告提供高效解决方案 随着人工智能技术的快速发展&#xff0c;越来越多的学术工作者开始借助AI工具提升论文写作效率。对于研究生群体而言&#xff…

作者头像 李华
网站建设 2026/4/23 10:50:22

2025必备10个降aigc工具,继续教育学生必看

2025必备10个降aigc工具&#xff0c;继续教育学生必看 AI降重工具&#xff1a;让论文更自然&#xff0c;让学术更真实 在当前的学术环境中&#xff0c;随着AI技术的广泛应用&#xff0c;论文中的AIGC痕迹越来越容易被检测出来。对于继续教育的学生而言&#xff0c;如何有效降低…

作者头像 李华
网站建设 2026/4/23 10:48:32

17、探索LINQ:强大的数据查询利器

探索LINQ:强大的数据查询利器 1. LINQ简介 ADO.NET 2.0是一个成熟且仍在发展的数据访问API,不过它在处理数据时,关系数据模型和面向对象编程模型之间存在较大差异,在减少这两种模型之间的不匹配方面能力有限。而微软为.NET引入了LINQ(Language - Integrated Query),它…

作者头像 李华
网站建设 2026/4/16 17:16:46

基于大数据的校园点餐系统设计与实现(程序+文档+讲解)

课题介绍在高校食堂精细化运营、学生就餐体验升级需求下&#xff0c;传统校园点餐存在 “菜品推荐匹配度低、高峰期取餐拥堵、食堂备餐效率差” 的痛点&#xff0c;基于大数据技术构建的校园点餐系统&#xff0c;适配学生、食堂档口、后勤管理部门等角色&#xff0c;整合学生消…

作者头像 李华
网站建设 2026/4/23 2:22:15

AUTO TECH China 2026 广州国际汽车测试测量技术展览会

AUTO TECH China 2026 广州国际汽车测试测量技术展览会时间&#xff1a;2026年11月27日-30日 地点&#xff1a;广州中国进出口商品交易会展馆D区AUTO TECH China 广州汽车测试测量技术展是专注于华南地区专业的汽车质量控制展览会&#xff0c;是关于各种汽车测试解决方案的专…

作者头像 李华