实施Ruby方法,以找到Ruby中输入号码相同数字的下一个最大数字



实现一种红宝石方法,以查找具有相同数字的下一个最大数字。例如:38276将返回38627。

它不会是最快的,但要做!

number = 38276
options = number.to_s.chars.permutation.map{|s| s.join.to_i}.uniq.sort
options[options.index(number) + 1] #=> 38627

获得具有相同数字的下一个数字的另一种方法:

def next_number_with_same_digits(number)
  number.to_s.chars.permutation.map { |e| e.join.to_i }.select { |n| n > number }.min
end

如果您想获得具有相同数字的最后一个数字:

def last_number_with_same_digits(number)
  number.to_s.chars.permutation.map { |e| e.join.to_i }.select { |n| n < number }.max
end

最新更新