news 2026/6/15 17:33:24

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/6/15 12:56:20

详细分析线程池上下文的基本知识(附Demo)

目录前言1. 基本知识2. 父子线程数据不同3. 父子线程数据相同前言 Java基本知识&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 1. 基本知识 本意大概…

作者头像 李华
网站建设 2026/6/15 12:56:02

16、深入探索 XML:从基础概念到 SQL Server 实践

深入探索 XML:从基础概念到 SQL Server 实践 1. XML 基础概念 XML,即可扩展标记语言,是一种元语言,用于定义其他语言,这些被定义的语言被称为标记语言。XML 文档是通过标记数据创建的,即将数据封装在开始标签和结束标签之间。这些标签定义的元素形成层次结构,使 XML 文…

作者头像 李华
网站建设 2026/6/14 1:57:38

Java毕设选题推荐:基于springboot的旅游网站系统的设计与实现基于springboot的旅游管理系统,在线旅游管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华
网站建设 2026/6/15 12:54:39

计算机Java毕设实战-基于SpringBoot +Vue的动漫推荐系统设计与实现(协同过滤推荐算法)基于协同过滤算法的动漫推荐系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

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

作者头像 李华
网站建设 2026/6/13 16:52:23

麦多福生鲜超市库存管理信息系统sb+v

源码可s领取!!!麦多福生鲜超市库存管理信息系统基于 Spring Boot&#xff08;SB&#xff09;与 Vue.js&#xff08;V&#xff09;构建&#xff0c;旨在为麦多福生鲜超市提供精准、高效的库存管理解决方案&#xff0c;确保生鲜产品的新鲜度与供应稳定性&#xff0c;降低库存成本…

作者头像 李华
网站建设 2026/6/15 12:53:45

Java计算机毕设之基于Springboot+Vue的旅游推荐系统设计与实现基于springboot的旅游网站系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

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

作者头像 李华