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 字母大小写全排列相关推荐

  1. leetcode784. 字母大小写全排列(回溯)

    给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入: S = "a1b2" 输出: ["a1 ...

  2. LeetCode784.字母大小写全排列 个人纪录2022.10.30

    给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 示例 1: 输入:s = "a1b2 ...

  3. 字母大小写全排列C语言,14种模式解决面试算法编程题(PART II)

    写在前面 8.树的宽度优先搜索(Tree BFS) 该模式基于广度优先搜索(BFS)技术来遍历树,并使用队列在跳到下一层之前记录下该层的所有节点.使用这种方法可以有效地解决涉及以逐级顺序遍历树的任何问 ...

  4. 77.组合 | 40.组合总和II | 39.组合总和 | 784.字母大小写全排列

    77.组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输入:n = 4, k = 2 输出: [   [2,4], ...

  5. Java——字母大小写全排列

    题目链接 字母大小写全排列 题目描述 给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 题目示例 ...

  6. LeetCode 784. 字母大小写全排列

    784. 字母大小写全排列 [回溯法] class Solution {// 回溯 4:30 6int n;StringBuilder sb = new StringBuilder();List< ...

  7. leetcode784题:字母大小写全排列

    题目描述: 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入:S = "a1b2" 输出:[&quo ...

  8. 【784. 字母大小写全排列】

    来源:力扣(LeetCode) 描述:   给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 示 ...

  9. 784.字母大小写全排列

    给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入: S = "a1b2" 输出: ["a1 ...

最新文章

  1. EFCore笔记之异步查询
  2. sed删除空行,#开头的行,以及第一行
  3. 大话数据结构——查找
  4. Java 算法 解二元一次方程
  5. JavaScript--动态添加元素
  6. 3.7 TextRNN—TextRCNN—TextAttentionRNN—HAN—FastText—代码
  7. 蝙蝠算法c语言,求解0-1背包问题的二进制蝙蝠算法
  8. 使用php监控系统运行状态、网站运行状态监控系统
  9. Mac 下运行 xxx.sh 脚本文件
  10. 2021年UI设计面试问题及答案解析
  11. android textview 英文 自动换行,TextView设置文字包含中英文时自动换行问题的终极解决方案...
  12. 路由器管理页面html,电脑怎么进入路由器设置界面_怎么登录路由器管理界面?-192路由网...
  13. Linux Deepin15.9下更新nvidia显卡驱动
  14. Matlab 方位角计算
  15. 【STM32学习笔记-点亮LED灯】
  16. gulp入门详解之基本操作
  17. python控制机器人走直线_python程序控制NAO机器人行走
  18. 大数据工程师零基础起步——成长路线引入
  19. Visio之去除直线交叉处的跨线
  20. 回溯算法:从电影蝴蝶效应中学习回溯算法的核心思想

热门文章

  1. Java jdbctemplate赋值_Spring 之 Spring JdbcTemplate的使用
  2. python sqlserver api连接池_非常老的话题 SQLSERVER连接池
  3. mysql截取栏目字符_substring从指定字符串开始截取(图)
  4. Python常用模块之re模块
  5. Python必备知识点:对Json的基本使用方法
  6. python 随机生成汉字的三种方法
  7. Python中对象的引用与复制
  8. Python的Mixins机制
  9. Python之dict(或对象)与json之间的互相转化
  10. java计算器布局设计_Java图形化界面设计——布局管理器之GridLayout(网格布局) 之计算器...