news 2026/8/3 14:20:22

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/8/2 4:42:51

【计算机毕业设计案例】基于Springboot实现动漫推荐系统的协同过滤算法基于协同过滤算法的动漫推荐系统(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/30 21:40:34

手术室调度混乱每天浪费数小时,AI如何成为医院救星

在医疗领域&#xff0c;人工智能和机器人备受关注&#xff0c;但真正让医院损失金钱的问题其实是手术室协调。每天有2到4小时的手术室时间被浪费&#xff0c;这并非因为手术本身&#xff0c;而是因为手术间隙的各种问题&#xff0c;从人工排班和协调混乱到房间周转时间的不确定…

作者头像 李华
网站建设 2026/7/31 14:03:07

激动人心!Spring AI 2.x 发布!史诗级加强!

目录版本概览与重大变更**革命性的技术栈升级**&#x1f4e6; 环境要求与项目配置环境要求依赖配置基础配置 (application.yml)✨ 核心新特性与升级详解1. Redis 史诗级增强&#xff1a;成为AI应用核心存储2. 模型生态全面爆发3. 企业级特性与基础设施&#x1f4bb; 核心API使用…

作者头像 李华
网站建设 2026/7/21 11:48:42

128陷阱

总结&#xff1a;****Integer包装类在实现自动装箱时&#xff0c;为了节省内存和提升性能&#xff0c;设置了缓存数组。该缓存数组在Integer类加载时预创建了从-128到127共256个Integer对象。当使用自动装箱或调用Integer.valueOf()方法时&#xff0c;如果数值在-128到127范围内…

作者头像 李华
网站建设 2026/7/31 10:00:44

【课程设计/毕业设计】基于springboot的旅游网站系统的设计与实现基于springboot的旅游管理系统,在线旅游管理系统【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华