美文网首页
正整数数字全排列(Python版)

正整数数字全排列(Python版)

作者: 天堂的码头 | 来源:发表于2017-09-30 09:57 被阅读37次

问题:

123->123->132

123->213->231

123->321->312

首先固定第0个,让123中的1分别与1,2,3交换得到第二列;然后分别固定第二列的第1个数字,让第2个数字与第3个数字交换得到了第三列

具体实现代码如下:

nums = []
def permutation(num,begin,end):
  global nums
  if begin == end:
    #print num
    nums.append(str(num))
  else:
    for i in xrange(begin,end+1):                 #开始递归,从当前下标开始直至字符串结束。
      num[begin],num[i] = num[i],num[begin]       #将第一个以此与后边的数字作交换。
      permutation(num,begin+1,end)                #每交换一个之后,从下一个数字开始递归操作
      num[begin],num[i] = num[i],num[begin]       #递归返回之后,再将交换过的数字还原。
  setNum = len(set(nums))
  return setNum
def perm(n):
  num = list(str(n))
  count = permutation(num,0,len(num)-1)
  return count
print perm(12344)

相关文章

  • 正整数数字全排列(Python版)

    问题: 123->123->132 123->213->231 123->321->312 首先固定第0个,让12...

  • python版全排列

    python版全排列 思路:[1, 2, 3, 4],第一位数字4选1,第二位数字3选1, 第三位数字2选1,依此...

  • 排列组合与回溯法

    排列,组合,回溯法 ex.1 ex.2 排列 全排列:从第一个数字起,每个数字分别与它后面的数字交换 去重全排列:...

  • 输出全排列 (20 分)

    输出全排列 (20 分) 请编写程序输出前n个正整数的全排列(3<=n<=7),按字典序输出。 输入格式:一行输入...

  • Python小白 Leetcode刷题历程 No.46-N

    Python小白 Leetcode刷题历程 No.46-No.50 全排列、全排列Ⅱ、旋转图像、字母异...

  • 贪心算法删数问题

    删数问题 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n和k,设...

  • 全排列 (python)

    python写的,想了一上午只能写成这样,遍历是都遍历过了,但感觉少了点什么 修改了一下,写出来了,很感动,把输出...

  • 2019-03-07 python练习三:计算整数各位数字之和

    python练习三:计算整数各位数字之和 描述 输入一个正整数,计算其各个位的数字之和 输入 输入一个正整数 输出...

  • 排列类算法问题大总结

    全排列 带重复元素的排列 下一个排列 上一个排列 第 k 个排列 排列序号 排列序号II 全排列 给定一个数字列表...

  • Leetcode.46.Permutations

    题目 给定一个没有重复数字的数字序列, 输出这写数字的全排列组合. 思路 这种全排列的问题最直接的思路就是递归. ...

网友评论

      本文标题:正整数数字全排列(Python版)

      本文链接:https://www.haomeiwen.com/subject/ohdgextx.html