Реализуйте метод ruby, чтобы найти следующий по величине номер с такими же цифрами входного номера в ruby - PullRequest
0 голосов
/ 01 июля 2019

Реализуйте метод ruby, чтобы найти следующий по величине номер с такими же цифрами входного номера. Например: 38276 вернет 38627.

Ответы [ 2 ]

2 голосов
/ 01 июля 2019

Это не был бы самый быстрый, но делает работу!

number = 38276
options = number.to_s.chars.permutation.map{|s| s.join.to_i}.uniq.sort

options[options.index(number) + 1] #=> 38627
0 голосов
/ 01 июля 2019

Другой способ получить следующий номер с теми же цифрами:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...