【经典LeetCode算法题目专栏分类】【第11期】递归问题:字母大小写全排列、括号生成

  《博主简介》

小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。
更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】

递归

字母大小写全排列

class Solution:

    def letterCasePermutation(self, S: str) -> List[str]:

        def DFS(s_list, index):

            if index == len(s_list):

                res.append(''.join(s_list))

                return 

            # 未修改当前字符(字母或者数字)的一条分支  

            DFS(s_list, index + 1) 

            # 修改当前字母的的另一条分支

            if s_list[index].isalpha():

                s_list[index] = chr(ord(s_list[index]) ^ 32)

                DFS(s_list, index + 1)

        res = []

        S = list(S)

        DFS(S, 0)

        return res

# 回溯

class Solution:

    def permutation(self, s: str) -> List[str]:

        def backtrack(s, cur_s):

            if len(cur_s) == len(s):

                res.append(cur_s)

                return

            for i in range(len(s)):

                if i > 0 and s[i] == s[i-1] and visited[i-1] == False:

                    continue

                if visited[i] == False:

                    visited[i] = True

                    backtrack(s, cur_s + s[i])

                    visited[i] = False

        res = []

        visited = [False for _ in range(len(s))]

        s = ''.join(sorted(list(s)))

        backtrack(s,'')

        return res

22.括号生成

class Solution:

    def generateParenthesis(self, n: int) -> List[str]:

        res = []

        def generator(left, right, s):

            if left == n and right == n:

                res.append(s)

                return

            if left < n:

                generator(left+1, right, s + '(')

            if left > right:

                generator(left, right+1, s + ')')

        generator(0,0,'')

        return res

关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

觉得不错的小伙伴,感谢点赞、关注加收藏哦!

欢迎关注下方GZH:阿旭算法与机器学习,共同学习交流~

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-26 11:06:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-26 11:06:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-26 11:06:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-26 11:06:03       18 阅读

热门阅读

  1. 快速掌握TS基础知识

    2023-12-26 11:06:03       34 阅读
  2. html动态加载script

    2023-12-26 11:06:03       39 阅读
  3. C语言,数组元素逆序。

    2023-12-26 11:06:03       34 阅读
  4. 运维工程师的出路到底在哪里?

    2023-12-26 11:06:03       33 阅读
  5. Redis源码精读:哈希表

    2023-12-26 11:06:03       34 阅读