1、LeetCode784 字母大小写全排列
LeetCode784 字母大小写全排列
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。
示例:
输入:S = “a1b2”
输出:[“a1b2”, “a1B2”, “A1b2”, “A1B2”]
输入:S = “3z4”
输出:[“3z4”, “3Z4”]
输入:S = “12345”
输出:[“12345”]
文章目录
- LeetCode784 字母大小写全排列
- 回溯法
- 深度优先遍历
回溯法
class Solution {List<String> ans=new LinkedList<>();public List<String> letterCasePermutation(String s) {char[] chs=s.toCharArray(); help(chs,0);return ans;}public void help(char[] chs,int start){ans.add(new String(chs));for(int i=start;i<chs.length;i++){if(chs[i]>='0' && chs[i]<='9'){continue;}else if(chs[i]>='a' &&chs[i]<='z'){//当前小写字母,要转变为大写字母,所以减32chs[i]-=32;help(chs,i+1);//回溯chs[i]+=32;}else{//当前大写字母,要转变为小写字母,所以加32chs[i]+=32;help(chs,i+1);//回溯chs[i]-=32;}}}
}
深度优先遍历
class Solution {List<String> ans=new LinkedList<>();public List<String> letterCasePermutation(String s) {char[] chs=s.toCharArray(); help(chs,0,chs.length);return ans;}public void help(char[] chs,int start,int len){if(start==len){ans.add(new String(chs));return;}help(chs,start+1,len);if(Character.isLetter(chs[start])){//start位置如果是小写则变成大写,大写变成小写chs[start]^=32;help(chs,start+1,len);}}
}
1、LeetCode784 字母大小写全排列相关推荐
- leetcode784. 字母大小写全排列(回溯)
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入: S = "a1b2" 输出: ["a1 ...
- LeetCode784.字母大小写全排列 个人纪录2022.10.30
给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 示例 1: 输入:s = "a1b2 ...
- 字母大小写全排列C语言,14种模式解决面试算法编程题(PART II)
写在前面 8.树的宽度优先搜索(Tree BFS) 该模式基于广度优先搜索(BFS)技术来遍历树,并使用队列在跳到下一层之前记录下该层的所有节点.使用这种方法可以有效地解决涉及以逐级顺序遍历树的任何问 ...
- 77.组合 | 40.组合总和II | 39.组合总和 | 784.字母大小写全排列
77.组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输入:n = 4, k = 2 输出: [ [2,4], ...
- Java——字母大小写全排列
题目链接 字母大小写全排列 题目描述 给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 题目示例 ...
- LeetCode 784. 字母大小写全排列
784. 字母大小写全排列 [回溯法] class Solution {// 回溯 4:30 6int n;StringBuilder sb = new StringBuilder();List< ...
- leetcode784题:字母大小写全排列
题目描述: 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入:S = "a1b2" 输出:[&quo ...
- 【784. 字母大小写全排列】
来源:力扣(LeetCode) 描述: 给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 示 ...
- 784.字母大小写全排列
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入: S = "a1b2" 输出: ["a1 ...
最新文章
- EFCore笔记之异步查询
- sed删除空行,#开头的行,以及第一行
- 大话数据结构——查找
- Java 算法 解二元一次方程
- JavaScript--动态添加元素
- 3.7 TextRNN—TextRCNN—TextAttentionRNN—HAN—FastText—代码
- 蝙蝠算法c语言,求解0-1背包问题的二进制蝙蝠算法
- 使用php监控系统运行状态、网站运行状态监控系统
- Mac 下运行 xxx.sh 脚本文件
- 2021年UI设计面试问题及答案解析
- android textview 英文 自动换行,TextView设置文字包含中英文时自动换行问题的终极解决方案...
- 路由器管理页面html,电脑怎么进入路由器设置界面_怎么登录路由器管理界面?-192路由网...
- Linux Deepin15.9下更新nvidia显卡驱动
- Matlab 方位角计算
- 【STM32学习笔记-点亮LED灯】
- gulp入门详解之基本操作
- python控制机器人走直线_python程序控制NAO机器人行走
- 大数据工程师零基础起步——成长路线引入
- Visio之去除直线交叉处的跨线
- 回溯算法:从电影蝴蝶效应中学习回溯算法的核心思想
热门文章
- Java jdbctemplate赋值_Spring 之 Spring JdbcTemplate的使用
- python sqlserver api连接池_非常老的话题 SQLSERVER连接池
- mysql截取栏目字符_substring从指定字符串开始截取(图)
- Python常用模块之re模块
- Python必备知识点:对Json的基本使用方法
- python 随机生成汉字的三种方法
- Python中对象的引用与复制
- Python的Mixins机制
- Python之dict(或对象)与json之间的互相转化
- java计算器布局设计_Java图形化界面设计——布局管理器之GridLayout(网格布局) 之计算器...