arknmax 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -0
- data/lib/arknmax/heap.rb +10 -0
- data/lib/arknmax/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 479ee69d76bc30a6ba46ce37b74adebd488a64f59fb7a29c151004e2924b20fc
|
4
|
+
data.tar.gz: c84eecdfd47bfe4821326530889601cc02fc18228ba557b6eedce733efba8b1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fea367e8e48dac79bf447f8a4cc78b433fada868bf08af835bd933faa2728181d4208a5dbf44a16eab00fd94cc2d1dca8bdd8c9311f675dbbeabc9aca110b14
|
7
|
+
data.tar.gz: a130b46a3f474b3e66f2f1f6d949cddaa8be72f66619fb4170d691d8c07070ef44f464de113b72dd1738cda53885b5c3ec9eb8a06f03afb4ea6b04d8de8758fa
|
data/README.md
CHANGED
@@ -12,3 +12,15 @@ This is a simple realisation of nmax function
|
|
12
12
|
## Usage
|
13
13
|
|
14
14
|
$ cat bigfile.txt | arknmax 10
|
15
|
+
|
16
|
+
## Описание задачи
|
17
|
+
|
18
|
+
Напишите скрипт nmax, который делает следующее:
|
19
|
+
- читает из входящего потока текстовые данные;
|
20
|
+
- по завершении ввода выводит n самых больших целых чисел, встретившихся в полученных текстовых данных.
|
21
|
+
Дополнительные указания:
|
22
|
+
- числом считается любая непрерывная последовательность цифр в тексте;
|
23
|
+
- известно, что чисел длиннее 1000 цифр во входных данных нет;
|
24
|
+
- число n должно быть единственным параметром скрипта;
|
25
|
+
- код должен быть покрыт тестами;
|
26
|
+
- код должен быть оформлен в виде гема (содержащего исполняемый файл, код модулей и т.д.).
|
data/lib/arknmax/heap.rb
CHANGED
@@ -14,6 +14,8 @@ module Arknmax
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def <<(num)
|
17
|
+
return if limit_reached? && new_value_too_low?(num)
|
18
|
+
|
17
19
|
data_structure.push(num)
|
18
20
|
|
19
21
|
cut_extra_size! if overlimit?
|
@@ -39,8 +41,16 @@ module Arknmax
|
|
39
41
|
data_structure.length > size_limit
|
40
42
|
end
|
41
43
|
|
44
|
+
def limit_reached?
|
45
|
+
data_structure.length >= size_limit
|
46
|
+
end
|
47
|
+
|
42
48
|
def cut_extra_size!
|
43
49
|
data_structure.pop
|
44
50
|
end
|
51
|
+
|
52
|
+
def new_value_too_low?(num)
|
53
|
+
data_structure.min >= num
|
54
|
+
end
|
45
55
|
end
|
46
56
|
end
|
data/lib/arknmax/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arknmax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.A.Abroskin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-10-
|
11
|
+
date: 2018-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: algorithms
|