trackler 2.1.0.0 → 2.1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/common/exercises/connect/description.md +2 -1
- data/common/exercises/crypto-square/canonical-data.json +2 -2
- data/common/exercises/two-bucket/canonical-data.json +27 -1
- data/lib/trackler/version.rb +1 -1
- data/tracks/c/exercises/perfect-numbers/src/example.c +8 -4
- data/tracks/clojure/config.json +5 -0
- data/tracks/clojure/exercises/secret-handshake/project.clj +4 -0
- data/tracks/clojure/exercises/secret-handshake/src/example.clj +19 -0
- data/tracks/clojure/exercises/secret-handshake/test/secret_handshake_test.clj +55 -0
- data/tracks/cpp/.travis.yml +4 -3
- data/tracks/cpp/README.md +1 -1
- data/tracks/cpp/config.json +171 -67
- data/tracks/cpp/docs/ABOUT.md +2 -2
- data/tracks/cpp/docs/INSTALLATION.md +22 -28
- data/tracks/cpp/docs/TESTS.md +1 -1
- data/tracks/cpp/exercises/anagram/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/beer-song/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/binary/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/bob/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/clock/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/clock/clock_test.cpp +188 -64
- data/tracks/cpp/exercises/clock/example.cpp +17 -12
- data/tracks/cpp/exercises/clock/example.h +1 -0
- data/tracks/cpp/exercises/crypto-square/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/difference-of-squares/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/etl/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/etl/etl_test.cpp +5 -5
- data/tracks/cpp/exercises/food-chain/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/gigasecond/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/gigasecond/example.cpp +2 -6
- data/tracks/cpp/exercises/gigasecond/example.h +2 -2
- data/tracks/cpp/exercises/gigasecond/gigasecond_test.cpp +26 -8
- data/tracks/cpp/exercises/grade-school/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/grade-school/grade_school_test.cpp +5 -6
- data/tracks/cpp/exercises/grains/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/hamming/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/hello-world/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/hexadecimal/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/leap/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/meetup/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/meetup/meetup_test.cpp +1 -1
- data/tracks/cpp/exercises/nth-prime/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/nucleotide-count/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/nucleotide-count/nucleotide_count_test.cpp +3 -4
- data/tracks/cpp/exercises/phone-number/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/prime-factors/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/queen-attack/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/raindrops/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/rna-transcription/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/robot-name/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/roman-numerals/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/say/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/scrabble-score/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/series/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/series/series_test.cpp +11 -11
- data/tracks/cpp/exercises/sieve/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/space-age/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/sum-of-multiples/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/triangle/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/trinary/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/word-count/CMakeLists.txt +2 -9
- data/tracks/cpp/exercises/word-count/word_count_test.cpp +14 -15
- data/tracks/go/README.md +27 -13
- data/tracks/go/config.json +1 -0
- data/tracks/go/exercises/connect/.meta/gen.go +1 -3
- data/tracks/go/exercises/connect/cases_test.go +2 -1
- data/tracks/go/exercises/custom-set/.meta/gen.go +122 -101
- data/tracks/go/exercises/custom-set/cases_test.go +13 -4
- data/tracks/go/exercises/custom-set/custom_set_test.go +2 -2
- data/tracks/go/exercises/hamming/.meta/gen.go +1 -3
- data/tracks/go/exercises/hamming/cases_test.go +7 -1
- data/tracks/go/exercises/hamming/example.go +1 -1
- data/tracks/go/exercises/hamming/hamming_test.go +1 -1
- data/tracks/go/exercises/hello-world/{hello_example_test.go → example_helloworld_test.go} +0 -0
- data/tracks/go/exercises/house/house_test.go +8 -8
- data/tracks/go/exercises/meetup/.meta/gen.go +1 -3
- data/tracks/go/exercises/meetup/cases_test.go +2 -1
- data/tracks/go/exercises/palindrome-products/example.go +1 -1
- data/tracks/go/exercises/palindrome-products/palindrome_products_test.go +1 -1
- data/tracks/go/exercises/pascals-triangle/pascals_triangle_test.go +24 -4
- data/tracks/go/exercises/rna-transcription/.meta/gen.go +1 -3
- data/tracks/go/exercises/rna-transcription/cases_test.go +2 -1
- data/tracks/go/exercises/roman-numerals/.meta/gen.go +1 -3
- data/tracks/go/exercises/roman-numerals/cases_test.go +2 -1
- data/tracks/go/exercises/roman-numerals/example.go +1 -1
- data/tracks/go/exercises/transpose/.meta/gen.go +1 -3
- data/tracks/go/exercises/transpose/cases_test.go +2 -1
- data/tracks/go/exercises/transpose/transpose_test.go +5 -0
- data/tracks/go/exercises/word-count/.meta/gen.go +1 -3
- data/tracks/go/exercises/word-count/cases_test.go +2 -1
- data/tracks/go/gen/gen.go +3 -2
- data/tracks/java/config.json +5 -0
- data/tracks/java/exercises/saddle-points/build.gradle +17 -0
- data/tracks/java/exercises/saddle-points/src/example/java/Matrix.java +44 -0
- data/tracks/java/exercises/saddle-points/src/example/java/MatrixCoordinate.java +31 -0
- data/tracks/java/exercises/saddle-points/src/main/java/Matrix.java +5 -0
- data/tracks/java/exercises/saddle-points/src/main/java/MatrixCoordinate.java +31 -0
- data/tracks/java/exercises/saddle-points/src/test/java/MatrixTest.java +82 -0
- data/tracks/java/exercises/settings.gradle +1 -0
- data/tracks/javascript/.travis.yml +3 -1
- data/tracks/javascript/Makefile +2 -8
- data/tracks/javascript/SETUP.md +1 -2
- data/tracks/javascript/docs/INSTALLATION.md +3 -4
- data/tracks/javascript/docs/TESTS.md +14 -26
- data/tracks/javascript/exercises/hamming/example.js +7 -11
- data/tracks/javascript/exercises/hello-world/HINTS.md +3 -3
- data/tracks/javascript/exercises/robot-simulator/example.js +72 -73
- data/tracks/perl6/config.json +5 -0
- data/tracks/perl6/exercises/clock/Clock.pm6 +4 -0
- data/tracks/perl6/exercises/clock/Example.pm6 +12 -0
- data/tracks/perl6/exercises/clock/clock.t +534 -0
- data/tracks/perl6/exercises/clock/example.yaml +16 -0
- data/tracks/perl6/exercises/robot-name/Example.pm +11 -4
- data/tracks/php/exercises/hello-world/hello-world.php +1 -1
- data/tracks/php/exercises/hello-world/hello-world_test.php +1 -11
- data/tracks/php/exercises/robot-name/robot-name_test.php +1 -0
- data/tracks/purescript/config.json +7 -0
- data/tracks/purescript/exercises/largest-series-product/bower.json +16 -0
- data/tracks/purescript/exercises/largest-series-product/examples/src/LargestSeriesProduct.purs +31 -0
- data/tracks/purescript/exercises/largest-series-product/src/LargestSeriesProduct.purs +3 -0
- data/tracks/purescript/exercises/largest-series-product/test/Main.purs +73 -0
- data/tracks/python/exercises/sublist/sublist_test.py +94 -55
- data/tracks/ruby/README.md +38 -25
- data/tracks/ruby/exercises/hamming/example.tt +6 -4
- data/tracks/ruby/exercises/hamming/hamming_test.rb +4 -5
- data/tracks/ruby/exercises/linked-list/linked_list_test.rb +16 -0
- data/tracks/ruby/exercises/luhn/luhn_test.rb +5 -5
- data/tracks/ruby/exercises/ocr-numbers/.meta/.version +1 -0
- data/tracks/ruby/exercises/ocr-numbers/example.rb +42 -61
- data/tracks/ruby/exercises/ocr-numbers/example.tt +21 -0
- data/tracks/ruby/exercises/ocr-numbers/ocr_numbers_test.rb +63 -138
- data/tracks/ruby/lib/generator/exercise_cases.rb +43 -0
- data/tracks/ruby/lib/generator/underscore.rb +9 -0
- data/tracks/ruby/lib/hamming_cases.rb +9 -14
- data/tracks/ruby/lib/luhn_cases.rb +2 -18
- data/tracks/ruby/lib/ocr_numbers_cases.rb +20 -0
- data/tracks/ruby/lib/pig_latin_cases.rb +2 -12
- data/tracks/ruby/test/generator/underscore_test.rb +23 -0
- data/tracks/scala/config.json +316 -316
- metadata +26 -10
- data/tracks/cpp/exercises/etl/require_equal_containers.h +0 -88
- data/tracks/cpp/exercises/grade-school/require_equal_containers.h +0 -88
- data/tracks/cpp/exercises/nucleotide-count/require_equal_containers.h +0 -88
- data/tracks/cpp/exercises/series/require_equal_containers.h +0 -88
- data/tracks/cpp/exercises/word-count/require_equal_containers.h +0 -88
- data/tracks/javascript/exercises/acronym/package.json +0 -12
- data/tracks/javascript/package.json +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 690feb281e757e5ee91abb40fc82aaa6d81031bc
|
4
|
+
data.tar.gz: 3c695678955825bef34b2839d54bfc8b03f680fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7516fc2eba6d69dbcb1ef25a8ea2a54798889f0d6413514f1af4b7b41ed63ce445d0c2f0dfd5008b32d4a5a8b4728bea868080bf1517bae222b37e580bddb1a
|
7
|
+
data.tar.gz: 692a6672ec614d664d63b6ef03f103612d50462ed99bff75dec0ccfe9e8df60ef439d67f25b535e3d91af68ca62e84a2d8790701a65e0e85078c99c45a954859
|
@@ -8,7 +8,8 @@ side directly opposite it and the other player gets assigned the two other
|
|
8
8
|
sides).
|
9
9
|
|
10
10
|
Your goal is to build a program that given a simple representation of a board
|
11
|
-
computes the winner (or lack thereof).
|
11
|
+
computes the winner (or lack thereof). Note that all games need not be "fair".
|
12
|
+
(For example, players may have mismatched piece counts.)
|
12
13
|
|
13
14
|
The boards look like this (with spaces added for readability, which won't be in
|
14
15
|
the representation passed to your code):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"exercise": "crypto-square",
|
3
|
-
"version": "
|
3
|
+
"version": "2.0.0",
|
4
4
|
"cases": [
|
5
5
|
{
|
6
6
|
"description": "the spaces and punctuation are removed from the English text and the message is downcased",
|
@@ -32,7 +32,7 @@
|
|
32
32
|
"description": "empty plaintext results in an empty rectangle",
|
33
33
|
"property": "plaintextSegments",
|
34
34
|
"plaintext": "",
|
35
|
-
"expected":
|
35
|
+
"expected": []
|
36
36
|
},
|
37
37
|
{
|
38
38
|
"description": "4 character plaintext results in an 2x2 rectangle",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"exercise": "two-bucket",
|
3
|
-
"version": "1.0
|
3
|
+
"version": "1.1.0",
|
4
4
|
"cases": [
|
5
5
|
{
|
6
6
|
"description": "Measure using bucket one of size 3 and bucket two of size 5 - start with bucket one",
|
@@ -53,6 +53,32 @@
|
|
53
53
|
"goal_bucket": "two",
|
54
54
|
"other_bucket": 7
|
55
55
|
}
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"description": "Measure one step using bucket one of size 1 and bucket two of size 3 - start with bucket two",
|
59
|
+
"property": "measure",
|
60
|
+
"bucket_one": 1,
|
61
|
+
"bucket_two": 3,
|
62
|
+
"goal": 3,
|
63
|
+
"start_bucket": "two",
|
64
|
+
"expected": {
|
65
|
+
"moves": 1,
|
66
|
+
"goal_bucket": "two",
|
67
|
+
"other_bucket": 0
|
68
|
+
}
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"description": "Measure using bucket one of size 2 and bucket two of size 3 - start with bucket one and end with bucket two",
|
72
|
+
"property": "measure",
|
73
|
+
"bucket_one": 2,
|
74
|
+
"bucket_two": 3,
|
75
|
+
"goal": 3,
|
76
|
+
"start_bucket": "one",
|
77
|
+
"expected": {
|
78
|
+
"moves": 4,
|
79
|
+
"goal_bucket": "two",
|
80
|
+
"other_bucket": 1
|
81
|
+
}
|
56
82
|
}
|
57
83
|
]
|
58
84
|
}
|
data/lib/trackler/version.rb
CHANGED
@@ -2,13 +2,17 @@
|
|
2
2
|
|
3
3
|
static int aliquot_sum(int n)
|
4
4
|
{
|
5
|
-
|
6
|
-
|
5
|
+
if (n == 1) {
|
6
|
+
return 0;
|
7
|
+
}
|
8
|
+
int result = 1;
|
9
|
+
int i;
|
10
|
+
for (i = 2; i * i < n; ++i) {
|
7
11
|
if ((n % i) == 0) {
|
8
|
-
result
|
12
|
+
result += i + (n / i);
|
9
13
|
}
|
10
14
|
}
|
11
|
-
return result;
|
15
|
+
return result + (i * i == n ? i : 0);
|
12
16
|
}
|
13
17
|
|
14
18
|
kind classify_number(int n)
|
data/tracks/clojure/config.json
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
(ns secret-handshake)
|
2
|
+
|
3
|
+
(defn- int->reversed-binary [int]
|
4
|
+
(-> int
|
5
|
+
(Integer/toBinaryString)
|
6
|
+
(reverse)))
|
7
|
+
|
8
|
+
(defn- convert [integer]
|
9
|
+
(remove nil?
|
10
|
+
(map (fn [command binary]
|
11
|
+
(when (= \1 binary) command))
|
12
|
+
["wink" "double blink" "close your eyes" "jump"]
|
13
|
+
(int->reversed-binary integer))))
|
14
|
+
|
15
|
+
(defn commands [integer]
|
16
|
+
(let [cmds (convert integer)]
|
17
|
+
(if (= \1 (nth (int->reversed-binary integer) 4 \0))
|
18
|
+
(reverse cmds)
|
19
|
+
cmds)))
|
@@ -0,0 +1,55 @@
|
|
1
|
+
(ns secret-handshake-test
|
2
|
+
(:require [clojure.test :refer [deftest testing is]]
|
3
|
+
secret-handshake))
|
4
|
+
|
5
|
+
(deftest wink
|
6
|
+
(testing "a wink is returned for binary 1"
|
7
|
+
(is (= ["wink"] (secret-handshake/commands 1)))))
|
8
|
+
|
9
|
+
(deftest double-blink
|
10
|
+
(testing "a double blink is returned for a binary 10"
|
11
|
+
(is (= ["double blink"] (secret-handshake/commands 2)))))
|
12
|
+
|
13
|
+
(deftest close-your-eyes
|
14
|
+
(testing "a close your eyes is returned for a binary 100"
|
15
|
+
(is (= ["close your eyes"] (secret-handshake/commands 4)))))
|
16
|
+
|
17
|
+
(deftest jump
|
18
|
+
(testing "a jump is returned for a binary 1000"
|
19
|
+
(is (= ["jump"] (secret-handshake/commands 8)))))
|
20
|
+
|
21
|
+
(deftest two-actions
|
22
|
+
(testing "commands returns multiple actions"
|
23
|
+
(is (= ["wink" "double blink"] (secret-handshake/commands 3)))))
|
24
|
+
|
25
|
+
(deftest reversing
|
26
|
+
(testing "giving a binary 10000 reverses actions"
|
27
|
+
(is (= ["double blink" "wink"] (secret-handshake/commands 19)))))
|
28
|
+
|
29
|
+
(deftest reversing-one-action
|
30
|
+
(testing "reversing one action returns the same action"
|
31
|
+
(is (= ["jump"] (secret-handshake/commands 24)))))
|
32
|
+
|
33
|
+
(deftest reverse-nothing
|
34
|
+
(testing "reversing nothing still gives nothing"
|
35
|
+
(is (= [] (secret-handshake/commands 16)))))
|
36
|
+
|
37
|
+
(deftest all-actions
|
38
|
+
(testing "all actions together"
|
39
|
+
(is (=
|
40
|
+
["wink" "double blink" "close your eyes" "jump"]
|
41
|
+
(secret-handshake/commands 15)))))
|
42
|
+
|
43
|
+
(deftest reverse-all-actions
|
44
|
+
(testing "reversing all actions together"
|
45
|
+
(is (=
|
46
|
+
["jump" "close your eyes" "double blink" "wink"]
|
47
|
+
(secret-handshake/commands 31)))))
|
48
|
+
|
49
|
+
(deftest nothing
|
50
|
+
(testing "do nothing for 0"
|
51
|
+
(is (= [] (secret-handshake/commands 0)))))
|
52
|
+
|
53
|
+
(deftest lower-5-bits-zero
|
54
|
+
(testing "do nothing for high numbers if lower 5 bits not set"
|
55
|
+
(is (= [] (secret-handshake/commands 32)))))
|
data/tracks/cpp/.travis.yml
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
---
|
2
|
+
dist: trusty
|
3
|
+
sudo: required
|
2
4
|
language: cpp
|
3
5
|
compiler:
|
4
6
|
- gcc
|
5
7
|
- clang
|
6
8
|
before_install:
|
7
|
-
- sudo add-apt-repository -y ppa:
|
8
|
-
- sudo add-apt-repository -y ppa:boost-latest/ppa
|
9
|
+
- sudo add-apt-repository -y ppa:samuel-bachmann/boost
|
9
10
|
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
10
11
|
- sudo apt-get -qq -d update
|
11
12
|
install:
|
12
|
-
- sudo apt-get -qq install
|
13
|
+
- sudo apt-get -qq install boost1.60 cmake g++-4.8
|
13
14
|
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 90
|
14
15
|
script:
|
15
16
|
- bin/fetch-configlet
|
data/tracks/cpp/README.md
CHANGED
@@ -6,7 +6,7 @@ Exercism Exercises in C++
|
|
6
6
|
|
7
7
|
## Contributing Guide
|
8
8
|
|
9
|
-
Please see the [contributing guide](https://github.com/exercism/x-
|
9
|
+
Please see the [contributing guide](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md)
|
10
10
|
|
11
11
|
## License
|
12
12
|
|
data/tracks/cpp/config.json
CHANGED
@@ -18,178 +18,282 @@
|
|
18
18
|
"difficulty": 1,
|
19
19
|
"slug": "hello-world",
|
20
20
|
"topics": [
|
21
|
-
"strings"
|
21
|
+
"strings"
|
22
22
|
]
|
23
23
|
},
|
24
24
|
{
|
25
|
-
"difficulty":
|
25
|
+
"difficulty": 5,
|
26
26
|
"slug": "bob",
|
27
|
-
"topics": [
|
27
|
+
"topics": [
|
28
|
+
"strings",
|
29
|
+
"control-flow (conditionals)",
|
30
|
+
"parsing"
|
31
|
+
]
|
28
32
|
},
|
29
33
|
{
|
30
34
|
"difficulty": 1,
|
31
35
|
"slug": "leap",
|
32
|
-
"topics": [
|
36
|
+
"topics": [
|
37
|
+
"logic",
|
38
|
+
"control-flow (conditionals)"
|
39
|
+
]
|
33
40
|
},
|
34
41
|
{
|
35
|
-
"difficulty":
|
42
|
+
"difficulty": 2,
|
36
43
|
"slug": "gigasecond",
|
37
|
-
"topics": [
|
44
|
+
"topics": [
|
45
|
+
"dates",
|
46
|
+
"interfaces"
|
47
|
+
]
|
38
48
|
},
|
39
49
|
{
|
40
|
-
"difficulty":
|
50
|
+
"difficulty": 3,
|
41
51
|
"slug": "hamming",
|
42
|
-
"topics": [
|
52
|
+
"topics": [
|
53
|
+
"strings",
|
54
|
+
"control-flow (loops)"
|
55
|
+
]
|
43
56
|
},
|
44
57
|
{
|
45
|
-
"difficulty":
|
58
|
+
"difficulty": 5,
|
46
59
|
"slug": "anagram",
|
47
|
-
"topics": [
|
60
|
+
"topics": [
|
61
|
+
"strings",
|
62
|
+
"filtering",
|
63
|
+
"arrays"
|
64
|
+
]
|
48
65
|
},
|
49
66
|
{
|
50
|
-
"difficulty":
|
67
|
+
"difficulty": 3,
|
51
68
|
"slug": "etl",
|
52
|
-
"topics": [
|
69
|
+
"topics": [
|
70
|
+
"maps",
|
71
|
+
"arrays",
|
72
|
+
"control-flow (loops)"
|
73
|
+
]
|
53
74
|
},
|
54
75
|
{
|
55
|
-
"difficulty":
|
76
|
+
"difficulty": 5,
|
56
77
|
"slug": "word-count",
|
57
|
-
"topics": [
|
78
|
+
"topics": [
|
79
|
+
"strings",
|
80
|
+
"arrays",
|
81
|
+
"maps",
|
82
|
+
"parsing"
|
83
|
+
]
|
58
84
|
},
|
59
85
|
{
|
60
|
-
"difficulty":
|
86
|
+
"difficulty": 3,
|
61
87
|
"slug": "difference-of-squares",
|
62
|
-
"topics": [
|
88
|
+
"topics": [
|
89
|
+
"control-flow (loops)"
|
90
|
+
]
|
63
91
|
},
|
64
92
|
{
|
65
|
-
"difficulty":
|
93
|
+
"difficulty": 3,
|
66
94
|
"slug": "nucleotide-count",
|
67
|
-
"topics": [
|
95
|
+
"topics": [
|
96
|
+
"strings",
|
97
|
+
"parsing"
|
98
|
+
]
|
68
99
|
},
|
69
100
|
{
|
70
|
-
"difficulty":
|
101
|
+
"difficulty": 7,
|
71
102
|
"slug": "food-chain",
|
72
|
-
"topics": [
|
103
|
+
"topics": [
|
104
|
+
"strings",
|
105
|
+
"control-flow (loops)",
|
106
|
+
"pattern recognition"
|
107
|
+
]
|
73
108
|
},
|
74
109
|
{
|
75
|
-
"difficulty":
|
110
|
+
"difficulty": 5,
|
76
111
|
"slug": "phone-number",
|
77
|
-
"topics": [
|
112
|
+
"topics": [
|
113
|
+
"strings",
|
114
|
+
"parsing"
|
115
|
+
]
|
78
116
|
},
|
79
117
|
{
|
80
|
-
"difficulty":
|
118
|
+
"difficulty": 3,
|
81
119
|
"slug": "grade-school",
|
82
|
-
"topics": [
|
120
|
+
"topics": [
|
121
|
+
"arrays",
|
122
|
+
"parsing"
|
123
|
+
]
|
83
124
|
},
|
84
125
|
{
|
85
|
-
"difficulty":
|
126
|
+
"difficulty": 5,
|
86
127
|
"slug": "robot-name",
|
87
|
-
"topics": [
|
128
|
+
"topics": [
|
129
|
+
"strings",
|
130
|
+
"randomness"
|
131
|
+
]
|
88
132
|
},
|
89
133
|
{
|
90
|
-
"difficulty":
|
134
|
+
"difficulty": 3,
|
91
135
|
"slug": "sum-of-multiples",
|
92
|
-
"topics": [
|
136
|
+
"topics": [
|
137
|
+
"mathematics"
|
138
|
+
]
|
93
139
|
},
|
94
140
|
{
|
95
141
|
"difficulty": 1,
|
96
142
|
"slug": "space-age",
|
97
|
-
"topics": [
|
143
|
+
"topics": [
|
144
|
+
"functions"
|
145
|
+
]
|
98
146
|
},
|
99
147
|
{
|
100
|
-
"difficulty":
|
148
|
+
"difficulty": 5,
|
101
149
|
"slug": "meetup",
|
102
|
-
"topics": [
|
150
|
+
"topics": [
|
151
|
+
"interfaces",
|
152
|
+
"functions"
|
153
|
+
]
|
103
154
|
},
|
104
155
|
{
|
105
|
-
"difficulty":
|
156
|
+
"difficulty": 3,
|
106
157
|
"slug": "scrabble-score",
|
107
|
-
"topics": [
|
158
|
+
"topics": [
|
159
|
+
"strings",
|
160
|
+
"maps"
|
161
|
+
]
|
108
162
|
},
|
109
163
|
{
|
110
|
-
"difficulty":
|
164
|
+
"difficulty": 3,
|
111
165
|
"slug": "triangle",
|
112
|
-
"topics": [
|
166
|
+
"topics": [
|
167
|
+
"mathematics",
|
168
|
+
"control-flow (conditionals)"
|
169
|
+
]
|
113
170
|
},
|
114
171
|
{
|
115
|
-
"difficulty":
|
172
|
+
"difficulty": 2,
|
116
173
|
"slug": "grains",
|
117
|
-
"topics": [
|
174
|
+
"topics": [
|
175
|
+
"bitwise operations"
|
176
|
+
]
|
118
177
|
},
|
119
178
|
{
|
120
|
-
"difficulty":
|
179
|
+
"difficulty": 2,
|
121
180
|
"slug": "raindrops",
|
122
|
-
"topics": [
|
181
|
+
"topics": [
|
182
|
+
"strings"
|
183
|
+
]
|
123
184
|
},
|
124
185
|
{
|
125
|
-
"difficulty":
|
186
|
+
"difficulty": 7,
|
126
187
|
"slug": "roman-numerals",
|
127
|
-
"topics": [
|
188
|
+
"topics": [
|
189
|
+
"strings",
|
190
|
+
"mathematics"
|
191
|
+
]
|
128
192
|
},
|
129
193
|
{
|
130
|
-
"difficulty":
|
194
|
+
"difficulty": 3,
|
131
195
|
"slug": "binary",
|
132
|
-
"topics": [
|
196
|
+
"topics": [
|
197
|
+
"strings",
|
198
|
+
"mathematics"
|
199
|
+
]
|
133
200
|
},
|
134
201
|
{
|
135
|
-
"difficulty":
|
202
|
+
"difficulty": 5,
|
136
203
|
"slug": "prime-factors",
|
137
|
-
"topics": [
|
204
|
+
"topics": [
|
205
|
+
"mathematics",
|
206
|
+
"control-flow (loops)"
|
207
|
+
]
|
138
208
|
},
|
139
209
|
{
|
140
|
-
"difficulty":
|
210
|
+
"difficulty": 7,
|
141
211
|
"slug": "crypto-square",
|
142
|
-
"topics": [
|
212
|
+
"topics": [
|
213
|
+
"strings",
|
214
|
+
"filtering",
|
215
|
+
"text formatting"
|
216
|
+
]
|
143
217
|
},
|
144
218
|
{
|
145
|
-
"difficulty":
|
219
|
+
"difficulty": 3,
|
146
220
|
"slug": "trinary",
|
147
|
-
"topics": [
|
221
|
+
"topics": [
|
222
|
+
"strings",
|
223
|
+
"mathematics"
|
224
|
+
]
|
148
225
|
},
|
149
226
|
{
|
150
|
-
"difficulty":
|
227
|
+
"difficulty": 3,
|
151
228
|
"slug": "rna-transcription",
|
152
|
-
"topics": [
|
229
|
+
"topics": [
|
230
|
+
"strings"
|
231
|
+
]
|
153
232
|
},
|
154
233
|
{
|
155
|
-
"difficulty":
|
234
|
+
"difficulty": 10,
|
156
235
|
"slug": "say",
|
157
|
-
"topics": [
|
236
|
+
"topics": [
|
237
|
+
"strings",
|
238
|
+
"logic",
|
239
|
+
"text formatting"
|
240
|
+
]
|
158
241
|
},
|
159
242
|
{
|
160
|
-
"difficulty":
|
243
|
+
"difficulty": 5,
|
161
244
|
"slug": "sieve",
|
162
|
-
"topics": [
|
245
|
+
"topics": [
|
246
|
+
"mathematics",
|
247
|
+
"control-flow (loops)"
|
248
|
+
]
|
163
249
|
},
|
164
250
|
{
|
165
|
-
"difficulty":
|
251
|
+
"difficulty": 5,
|
166
252
|
"slug": "series",
|
167
|
-
"topics": [
|
253
|
+
"topics": [
|
254
|
+
"strings",
|
255
|
+
"arrays",
|
256
|
+
"logic"
|
257
|
+
]
|
168
258
|
},
|
169
259
|
{
|
170
|
-
"difficulty":
|
260
|
+
"difficulty": 5,
|
171
261
|
"slug": "clock",
|
172
|
-
"topics": [
|
262
|
+
"topics": [
|
263
|
+
"classes",
|
264
|
+
"time"
|
265
|
+
]
|
173
266
|
},
|
174
267
|
{
|
175
|
-
"difficulty":
|
268
|
+
"difficulty": 7,
|
176
269
|
"slug": "beer-song",
|
177
|
-
"topics": [
|
270
|
+
"topics": [
|
271
|
+
"strings",
|
272
|
+
"text formatting"
|
273
|
+
]
|
178
274
|
},
|
179
275
|
{
|
180
|
-
"difficulty":
|
276
|
+
"difficulty": 5,
|
181
277
|
"slug": "nth-prime",
|
182
|
-
"topics": [
|
278
|
+
"topics": [
|
279
|
+
"mathematics"
|
280
|
+
]
|
183
281
|
},
|
184
282
|
{
|
185
|
-
"difficulty":
|
283
|
+
"difficulty": 3,
|
186
284
|
"slug": "hexadecimal",
|
187
|
-
"topics": [
|
285
|
+
"topics": [
|
286
|
+
"strings",
|
287
|
+
"mathematics"
|
288
|
+
]
|
188
289
|
},
|
189
290
|
{
|
190
|
-
"difficulty":
|
291
|
+
"difficulty": 5,
|
191
292
|
"slug": "queen-attack",
|
192
|
-
"topics": [
|
293
|
+
"topics": [
|
294
|
+
"logic",
|
295
|
+
"control-flow (loops)"
|
296
|
+
]
|
193
297
|
}
|
194
298
|
]
|
195
299
|
}
|