784. 字母大小写全排列

【回溯法】

class Solution {// 回溯 4:30 6int n;StringBuilder sb = new StringBuilder();List<String> ans = new ArrayList();void backTrack(int t) {if (t == n) {ans.add(sb.toString()); return;}char c = sb.charAt(t);if (c >= '0' && c <= '9') backTrack(t + 1);else {backTrack(t + 1);if (c >= 'a' && c <= 'z') {sb.setCharAt(t, (char)(c + 'A' - 'a'));backTrack(t + 1);sb.setCharAt(t, c);} else {sb.setCharAt(t, (char)(c + 'a' - 'A'));backTrack(t + 1);sb.setCharAt(t, c);}}}public List<String> letterCasePermutation(String s) {this.n = s.length();sb.append(s);backTrack(0);return ans;}
}

【小技巧】大小写转换可以通过异或32来实现

class Solution {// 回溯法 8:18 ^32List<String> ans = new ArrayList();int n;StringBuilder sb = new StringBuilder();void backTrack(int t) {if (t == n) {ans.add(sb.toString()); return;}backTrack(t + 1);char c = sb.charAt(t);if (c < '0' || c > '9') {sb.setCharAt(t, (char)(c ^ 32));backTrack(t + 1);sb.setCharAt(t, (char)c);}}public List<String> letterCasePermutation(String s) {this.n = s.length();sb.append(s);backTrack(0);return ans;}
}

LeetCode 784. 字母大小写全排列相关推荐

  1. LeetCode 784. 字母大小写全排列(位运算回溯)

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

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

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

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

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

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

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

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

    链接:https://leetcode-cn.com/problems/letter-case-permutation/ 题解:如果是字母,存在改为变为大/小写,和当前情况dfs往下情况 这一类涉及排 ...

  6. 文巾解题 784. 字母大小写全排列

    1 题目描述 2 解题思路:回溯 如果解决一个问题有多个步骤,每一个步骤有多种方法,题目又要我们找出所有的方法,可以使用回溯算法:         回溯算法是在一棵树上的 深度优先遍历(因为要找所有的 ...

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

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

  8. 1、LeetCode784 字母大小写全排列

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

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

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

最新文章

  1. Windows注册与删除mysql服务
  2. linux shell install 命令简介
  3. python创建csv文件并写入-【已解决】Python中创建和保存数据到csv文件中
  4. Worksheet.get_Range Method
  5. COM原理与应用之COM的实现
  6. 在Xcode6中添加prefix.pch文件
  7. C++leetcode找出两个有序数组的中位数(2)
  8. Redis Bloom布隆过滤器的安装及使用
  9. 用Unity实现游戏弹反效果
  10. 大话微服务(Big Talk in MicroService)
  11. pig---用户自定义函数(UDF)
  12. 江苏省计算机一级题库软件百度云,江苏省计算机一级B题库11
  13. Aspectj快速上手代码示例之Before,After,Around
  14. aspxgridview将所选项导出ASPxGridViewExporter1
  15. 使用jvisualvm通过JMX的方式监控远程JVM运行状况
  16. 外贸型网站建设需要多少钱
  17. 陶哲轩实分析 3.4 补充
  18. springboot使用logback
  19. 回归模型效果评估系列3-R平方
  20. POJ 1625 Censored ( Trie图 DP 高精度 )

热门文章

  1. 数据宝非营运货车保险风险评估产品成功入围泰康保险采购库
  2. Oracle数据库中的锁,闪回操作(二)
  3. 详解数据结构单链表,你真的了解typedef结合结构体的用法和链表结构参数形式吗,这里给出数据结构极常见问题的解答
  4. 小猪的Python学习之旅 —— 15.浅尝Python数据分析:分析2018政府工作报告中的高频词...
  5. HTML中关于边框(border)的使用
  6. 股权转让项目:昆明市粮油贸易中心有限责任公司13.56497%股权转让
  7. Redis在电影票系统的设计与实现(Redis键值对设计)
  8. 手机是否已被他人监控了?如果出现这3种现象,大家还是小心点
  9. flutter中使用android原生视图
  10. 华为第四代服务器芯片Hi1620,7nm ARM 64核!华为Hi1620高性能CPU公开:3.0GHz