给定数字A,通过使用数字A中可用的相同数字找到比该数字大的数字B.

时间:2011-09-19 20:07:28

标签: algorithm

您已给出正数。你必须使用数字中可用的相同数字找到一个比这更大的数字。

使用相同时间的相同数字,以正整数表示,如果不可能,则返回-1。

例如: (1)你给出了一个数字7585,你的输出应该是7855。 (2)7111,返回-1。

谢谢,

3 个答案:

答案 0 :(得分:2)

易:

def findnext(i):
  array = digitsOf(i)
  n = max_int
  for perm in permutations(array):
    if(number(perm) > i):
      n = min(number(perm), n)
  if n=max_int:
    return -1
  else:
    return n

答案 1 :(得分:1)

在较小的数字之后找到一个更大的数字(从最低有效数字开始),然后交换它们。

答案 2 :(得分:0)

转换为字符串 分成单个数字并推入数组 对数组进行降序排序 数组到字符串 字符串到数字 如果新数字高于旧数字,则返回它,如果不是则返回-1