zoukankan      html  css  js  c++  java
  • 784. 字母大小写全排列

    给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。

    示例:
    输入: S = "a1b2"
    输出: ["a1b2", "a1B2", "A1b2", "A1B2"]

    输入: S = "3z4"
    输出: ["3z4", "3Z4"]

    输入: S = "12345"
    输出: ["12345"]
    注意:

    S 的长度不超过12。
    S 仅由数字和字母组成。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/letter-case-permutation
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

     1 public class Solution {
     2     private int len = -1;
     3     private char[] s = null;
     4     private void helper(int cur, List<String> res){
     5         if (cur >= len) {
     6             res.add(String.valueOf(s));
     7             return;
     8         }
     9         if (!Character.isDigit(s[cur])){
    10             helper(cur+1,res);
    11             if (s[cur] >= 'a' && s[cur] <= 'z'){
    12                 s[cur] -= 32;
    13                 helper(cur+1,res);
    14             } else {
    15                 s[cur] += 32;
    16                 helper(cur+1,res);
    17             }
    18         } else
    19             helper(cur+1, res);
    20     }
    21 
    22     public List<String> letterCasePermutation(String S) {
    23         len = S.length();
    24         s = S.toCharArray();
    25         List<String> res = new ArrayList<>();
    26         helper(0,res);
    27         return res;
    28     }
    29 
    30     public static void main(String[] args) {
    31         List<String> list = new Solution().letterCasePermutation("12345");
    32         System.out.println("list = " + list);
    33     }
    34 }
  • 相关阅读:
    现在的企业用到的Java开发主流框架有哪些
    StringBuffer清空
    java代码优化写法1(转摘)
    java代码优化写法(转摘)
    mysql常用
    java软引用、弱引用(转摘)
    mybtais分批insert
    大魔王降临cnblogs了~~
    tomcat去除项目名部署
    静态代码块、非静态代码块、构造函数的输出顺序
  • 原文地址:https://www.cnblogs.com/yfs123456/p/11619775.html
Copyright © 2011-2022 走看看