机试刷题_字符串的排列【python】
- 互联网
- 2025-09-08 18:24:02

题目:字符串的排列
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机试刷题_字符串的排列【python】由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“机试刷题_字符串的排列【python】”