当前位置: 首页 > news >正文

机试刷题_字符串的排列【python】

题目:字符串的排列

在这里插入图片描述

from os import dup
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param str string字符串 
# @return string字符串一维数组
#
class Solution:
    def backtrack(self,res,state,choices,selected):
    	# 当状态长度等于元素数量时,记录解
        if len(state)==len(choices):
            res.append(state)
            return
        dupilcate = set()
        for i in range(len(choices)):
        	# 剪枝:不允许重复选择元素,且不允许重复选择相等元素
            if not selected[i] and choices[i] not in dupilcate:
            	 #记录选择过的值
                dupilcate.add(choices[i])
                selected[i] = True
                state  += choices[i]
                # 进行下一轮选择
                self.backtrack(res,state,choices,selected)
                # 回退:撤销选择,恢复到之前的状态
                selected[i] = False
                state = state[:-1]


    def Permutation(self , str: str) -> List[str]:
        res = []
        if len(str)==0:
            return res
        tmp = "".join(sorted(list(str)))
        self.backtrack(res,state ="",choices = tmp,selected=[False]*len(tmp))
        return res
        

相关文章:

  • 【EDA学习】嘉立创题库
  • GDC2025 | DeepSeek-Qwen 模型蒸馏极限挑战赛,来了!(预赛报名)
  • C++:dfs习题四则
  • 投递记录——2024
  • PCL 曲面法向量点云采样
  • 深入理解Python多线程编程 threading
  • JVM内存管理笔记
  • 阅读能力提升训练指南
  • 本地搭建自己的专属客服之OneApi关联Ollama部署的大模型并创建令牌《下》
  • 【2024】Wavelet Mixture of Experts for Time Series Forecasting
  • 【AI大模型】大模型基础论文全集
  • 【Rust中级教程】1.10. 引用及内部可变性(简单回顾):引用、内部可变性、`Cell`类型及相关操作
  • Cursor 小白入门
  • 轻量级的注意力网络(LANMSFF)模型详解及代码复现
  • springboot与Freemarker
  • DeepSeek专题:以专业角度详细讲讲Deepseek-R1的高质量数据合成过程⌛
  • PyCharm2024使用Python3.12在Debug时,F8步进时如同死机状态
  • Pytorch深度学习教程_3_初识pytorch
  • 美团商家版 验证码 分析
  • 视觉大模型VIT
  • 央媒评网红质疑胖东来玉石定价暴利:对碰瓷式维权不能姑息
  • 共情场域与可持续发展——关于博物馆、美术馆运营的新思考
  • 《广州大典研究》集刊发展座谈会:“广州学”的传承与创新
  • 湖南湘西州副州长刘冬生主动交代问题,接受审查调查
  • 巫蛊:文化的历史暗流
  • 法院就“行人相撞案”道歉:执法公正,普法莫拉开“距离”