module Nmax
Constants
- VERSION
Public Class Methods
get_nmax_from_stream(stream, n)
click to toggle source
# File lib/nmax.rb, line 5 def self.get_nmax_from_stream(stream, n) nmax_numbers = [] stream.each_line do |line| current_line_numbers = get_nmax_from_string(line, n) sorted_numbers = (nmax_numbers + current_line_numbers).sort.reverse nmax_numbers = sorted_numbers.size >= n ? sorted_numbers[-n, n] : sorted_numbers end nmax_numbers end
get_nmax_from_string(string, n)
click to toggle source
# File lib/nmax.rb, line 15 def self.get_nmax_from_string(string, n) return [] if string.empty? || n.nil? || n.zero? numbers = string.scan(/\d{1,1000}/).map(&:to_i) sorted_numbers = numbers.sort return sorted_numbers[-n, n] if sorted_numbers.size >= n sorted_numbers end
print(nmax_numbers)
click to toggle source
# File lib/nmax.rb, line 23 def self.print(nmax_numbers) nmax_numbers.each do |number| puts "#{number}\n" end end