• 《剑指offer》字符串的排列


    本题来自《剑指offer》 字符串的排列

    题目:

      输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

    思路:

        采用分治的思想,将大的字符串进行分割成小的字符集运算。

      每次将其中的一个字符抽出,剩下的全排列,最后用set去重并且排序即可。

    Python Code:

    # -*- coding:utf-8 -*-
    class Solution:
        def Permutation(self, ss):
            # write code here 
            res = []                         #存放结果值
            if ss:                           #输入参数不为空前提
                self.Perm(ss,res,'')         #刚开始为''
                res = list(set(res))         #思路是将全部的排列组合拼接起来,利用set去重
            return sorted(res)               #对结果值进行排序
        def Perm(self,ss,res,path):          #
            if ss == '':                     #如果ss全部被分割完毕,则将path保存
                res.append(path)
            else:
                for i in range(len(ss)):     #对ss进行分割
                    self.Perm(ss[:i]+ss[i+1:],res,path+ss[i])#去除ss[i]剩下的进行全排列

    总结:

  • 相关阅读:
    JSP一个简单的项目实现教程
    多个Excel文件快速导入到DB里面
    NotePad++左侧导航
    简单实用JSTL标签库
    Eclipse导入现有项目
    Java工具Eclipse
    winform窗体只能放大不能缩小
    ref out

    数组
  • 原文地址:https://www.cnblogs.com/missidiot/p/10783640.html
Copyright © 2020-2023  润新知