• 784. Letter Case Permutation


    package LeetCode_784
    
    /**
     * 784. Letter Case Permutation
     * https://leetcode.com/problems/letter-case-permutation/
     * Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string.
    Return a list of all possible strings we could create. You can return the output in any order.
    
    Example 1:
    Input: S = "a1b2"
    Output: ["a1b2","a1B2","A1b2","A1B2"]
    
    Example 2:
    Input: S = "3z4"
    Output: ["3z4","3Z4"]
    
    Example 3:
    Input: S = "12345"
    Output: ["12345"]
    
    Example 4:
    Input: S = "0"
    Output: ["0"]
    
    Constraints:
    1. S will be a string with length between 1 and 12.
    2. S will consist only of letters or digits.
     * */
    class Solution {
        /*
        * solution: dfs + backtracking, Time:O(2^n), Space:O(2^n)
        * */
        fun letterCasePermutation(S: String): List<String> {
            val result = ArrayList<String>()
            if (S == null || S.isEmpty()) {
                return result
            }
            dfs(0, S.toCharArray(), result)
            return result
        }
    
        private fun dfs(pos: Int, chars: CharArray, result: ArrayList<String>) {
            if (pos == chars.size) {
                result.add(String(chars))
                return
            }
            if (chars[pos].isDigit()) {
                //if digit, check next char
                return dfs(pos + 1, chars, result)
            }
            //change current pos to lower case
            chars[pos] = chars[pos].toLowerCase()
            //and keep tracking via next level
            dfs(pos + 1, chars, result)
            //change current pos to upper case
            chars[pos] = chars[pos].toUpperCase()
            //and keep tracking via next level
            dfs(pos + 1, chars, result)
        }
    }
  • 相关阅读:
    node 读取文件
    jQuery全局事件处理函数
    可以发送不同源请求的方式
    ajax 高度封装的函数
    jQuery中AJAX的回调
    jQuery中对AJAX的封装
    ajax 基本的封装
    AJAX 返回数据问题
    ajax 关于响应类型
    动态渲染数据到表格中
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14070253.html
Copyright © 2020-2023  润新知