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

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

递归

字母大小写全排列

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


相关文章
|
4月前
|
机器学习/深度学习 Dragonfly 人工智能
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
120 0
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
371 0
|
4月前
|
机器学习/深度学习 传感器 数据采集
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
342 0
|
5月前
|
机器学习/深度学习 人工智能 算法
AP聚类算法实现三维数据点分类
AP聚类算法实现三维数据点分类
186 0
|
11月前
|
机器学习/深度学习 算法 数据可视化
利用SVM(支持向量机)分类算法对鸢尾花数据集进行分类
本文介绍了如何使用支持向量机(SVM)算法对鸢尾花数据集进行分类。作者通过Python的sklearn库加载数据,并利用pandas、matplotlib等工具进行数据分析和可视化。
999 70
|
9月前
|
机器学习/深度学习 资源调度 算法
基于入侵野草算法的KNN分类优化matlab仿真
本程序基于入侵野草算法(IWO)优化KNN分类器,通过模拟自然界中野草的扩散与竞争过程,寻找最优特征组合和超参数。核心步骤包括初始化、繁殖、变异和选择,以提升KNN分类效果。程序在MATLAB2022A上运行,展示了优化后的分类性能。该方法适用于高维数据和复杂分类任务,显著提高了分类准确性。
|
程序员 C语言
【C语言】LeetCode(力扣)上经典题目
【C语言】LeetCode(力扣)上经典题目
262 1
|
存储 缓存 分布式计算
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
183 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
372 0
Leetcode第47题(全排列II)
LeetCode第47题要求返回一个包含重复数字序列的所有不重复全排列,通过深度优先搜索和去重策略来解决。
107 0