arknmax 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|