当前位置:   article > 正文

【字符串变换最小字符串】 给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。 变换规则:交换字符串中任意两个不同位置的字符。_给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序

给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序
  1. # 递归写法
  2. def min_str(raw: List[str], i: int, j: int, res: List[str]):
  3. """
  4. :param raw: 原始字符数组
  5. :param i: 第一个指针
  6. :param j: 第二个指针
  7. :param res: 结果存储列表
  8. :return:
  9. """
  10. if j >= len(raw) or i >= len(raw):
  11. return
  12. temp_raw = copy.deepcopy(raw)
  13. temp_raw[i], temp_raw[j] = temp_raw[j], temp_raw[i]
  14. res.append("".join(temp_raw))
  15. if j < len(raw):
  16. min_str(raw, i, j+1, res)
  17. if i < len(raw)-1 and j == len(raw)-1: # 剪枝并进入下一轮
  18. min_str(raw, i+1, i+2, res)
  19. if __name__ == '__main__':
  20. _res = []
  21. min_str(["g", "b", "c", "d", "e", "f", "h", "a"], 0, 1, _res)
  22. print(sorted(_res)[0])

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/769539
推荐阅读
相关标签
  

闽ICP备14008679号