trackler 2.2.0.3 → 2.2.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/list-ops/canonical-data.json +27 -11
- data/problem-specifications/exercises/rotational-cipher/canonical-data.json +8 -8
- data/tracks/clojure/config.json +240 -63
- data/tracks/cpp/CMakeLists.txt +1 -0
- data/tracks/cpp/config.json +8 -0
- data/tracks/cpp/exercises/bracket-push/CMakeLists.txt +52 -0
- data/tracks/cpp/exercises/bracket-push/bracket_push_test.cpp +75 -0
- data/tracks/cpp/exercises/bracket-push/example.cpp +28 -0
- data/tracks/cpp/exercises/bracket-push/example.h +13 -0
- data/tracks/ecmascript/config.json +235 -71
- data/tracks/ecmascript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/ecmascript/exercises/accumulate/README.md +65 -0
- data/tracks/ecmascript/exercises/acronym/README.md +45 -0
- data/tracks/ecmascript/exercises/all-your-base/README.md +65 -0
- data/tracks/ecmascript/exercises/allergies/README.md +67 -0
- data/tracks/ecmascript/exercises/alphametics/README.md +65 -0
- data/tracks/ecmascript/exercises/anagram/README.md +43 -0
- data/tracks/ecmascript/exercises/atbash-cipher/README.md +64 -0
- data/tracks/ecmascript/exercises/beer-song/README.md +357 -0
- data/tracks/ecmascript/exercises/binary-search-tree/README.md +90 -0
- data/tracks/ecmascript/exercises/binary-search/README.md +71 -0
- data/tracks/ecmascript/exercises/binary/README.md +65 -0
- data/tracks/ecmascript/exercises/bob/README.md +48 -0
- data/tracks/ecmascript/exercises/bracket-push/README.md +40 -0
- data/tracks/ecmascript/exercises/circular-buffer/README.md +80 -0
- data/tracks/ecmascript/exercises/clock/README.md +43 -0
- data/tracks/ecmascript/exercises/connect/README.md +64 -0
- data/tracks/ecmascript/exercises/crypto-square/README.md +104 -0
- data/tracks/ecmascript/exercises/custom-set/README.md +41 -0
- data/tracks/ecmascript/exercises/diamond/README.md +89 -0
- data/tracks/ecmascript/exercises/difference-of-squares/README.md +49 -0
- data/tracks/ecmascript/exercises/diffie-hellman/README.md +74 -0
- data/tracks/ecmascript/exercises/etl/README.md +81 -0
- data/tracks/ecmascript/exercises/flatten-array/README.md +48 -0
- data/tracks/ecmascript/exercises/food-chain/README.md +100 -0
- data/tracks/ecmascript/exercises/gigasecond/README.md +41 -0
- data/tracks/ecmascript/exercises/grade-school/README.md +72 -0
- data/tracks/ecmascript/exercises/grains/README.md +64 -0
- data/tracks/ecmascript/exercises/hamming/README.md +72 -0
- data/tracks/ecmascript/exercises/hello-world/README.md +51 -0
- data/tracks/ecmascript/exercises/hexadecimal/README.md +44 -0
- data/tracks/ecmascript/exercises/isogram/README.md +49 -0
- data/tracks/ecmascript/exercises/kindergarten-garden/README.md +96 -0
- data/tracks/ecmascript/exercises/largest-series-product/README.md +50 -0
- data/tracks/ecmascript/exercises/leap/README.md +63 -0
- data/tracks/ecmascript/exercises/linked-list/README.md +64 -0
- data/tracks/ecmascript/exercises/list-ops/README.md +40 -0
- data/tracks/ecmascript/exercises/luhn/README.md +101 -0
- data/tracks/ecmascript/exercises/matrix/README.md +75 -0
- data/tracks/ecmascript/exercises/meetup/README.md +60 -0
- data/tracks/ecmascript/exercises/minesweeper/README.md +60 -0
- data/tracks/ecmascript/exercises/nth-prime/README.md +45 -0
- data/tracks/ecmascript/exercises/ocr-numbers/README.md +115 -0
- data/tracks/ecmascript/exercises/octal/README.md +79 -0
- data/tracks/ecmascript/exercises/palindrome-products/README.md +70 -0
- data/tracks/ecmascript/exercises/pangram/README.md +45 -0
- data/tracks/ecmascript/exercises/pascals-triangle/README.md +51 -0
- data/tracks/ecmascript/exercises/perfect-numbers/README.md +54 -0
- data/tracks/ecmascript/exercises/phone-number/README.md +64 -0
- data/tracks/ecmascript/exercises/pig-latin/README.md +54 -0
- data/tracks/ecmascript/exercises/prime-factors/README.md +66 -0
- data/tracks/ecmascript/exercises/pythagorean-triplet/README.md +54 -0
- data/tracks/ecmascript/exercises/queen-attack/README.md +63 -0
- data/tracks/ecmascript/exercises/raindrops/README.md +54 -0
- data/tracks/ecmascript/exercises/rna-transcription/README.md +55 -0
- data/tracks/ecmascript/exercises/robot-name/README.md +52 -0
- data/tracks/ecmascript/exercises/robot-simulator/README.md +64 -0
- data/tracks/ecmascript/exercises/roman-numerals/README.md +79 -0
- data/tracks/ecmascript/exercises/saddle-points/README.md +63 -0
- data/tracks/ecmascript/exercises/say/README.md +99 -0
- data/tracks/ecmascript/exercises/scrabble-score/README.md +74 -0
- data/tracks/ecmascript/exercises/secret-handshake/README.md +65 -0
- data/tracks/ecmascript/exercises/series/README.md +57 -0
- data/tracks/ecmascript/exercises/sieve/README.md +64 -0
- data/tracks/ecmascript/exercises/simple-cipher/README.md +120 -0
- data/tracks/ecmascript/exercises/space-age/README.md +54 -0
- data/tracks/ecmascript/exercises/strain/README.md +70 -0
- data/tracks/ecmascript/exercises/sublist/README.md +50 -0
- data/tracks/ecmascript/exercises/sublist/example.js +30 -0
- data/tracks/ecmascript/exercises/sublist/package.json +69 -0
- data/tracks/ecmascript/exercises/sublist/sublist.spec.js +126 -0
- data/tracks/ecmascript/exercises/sum-of-multiples/README.md +48 -0
- data/tracks/ecmascript/exercises/triangle/README.md +56 -0
- data/tracks/ecmascript/exercises/trinary/README.md +58 -0
- data/tracks/ecmascript/exercises/two-bucket/README.md +66 -0
- data/tracks/ecmascript/exercises/word-count/README.md +49 -0
- data/tracks/ecmascript/exercises/wordy/README.md +93 -0
- data/tracks/go/.gitignore +1 -0
- data/tracks/go/README.md +2 -0
- data/tracks/go/config/exercise_readme.go.tmpl +16 -0
- data/tracks/go/exercises/accumulate/README.md +53 -0
- data/tracks/go/exercises/acronym/README.md +33 -0
- data/tracks/go/exercises/all-your-base/README.md +53 -0
- data/tracks/go/exercises/allergies/README.md +55 -0
- data/tracks/go/exercises/anagram/README.md +31 -0
- data/tracks/go/exercises/atbash-cipher/README.md +52 -0
- data/tracks/go/exercises/bank-account/README.md +48 -0
- data/tracks/go/exercises/beer-song/README.md +345 -0
- data/tracks/go/exercises/binary-search-tree/README.md +78 -0
- data/tracks/go/exercises/binary-search/README.md +59 -0
- data/tracks/go/exercises/binary/README.md +53 -0
- data/tracks/go/exercises/bob/README.md +36 -0
- data/tracks/go/exercises/bowling/README.md +71 -0
- data/tracks/go/exercises/bracket-push/README.md +28 -0
- data/tracks/go/exercises/change/README.md +41 -0
- data/tracks/go/exercises/circular-buffer/README.md +68 -0
- data/tracks/go/exercises/clock/README.md +31 -0
- data/tracks/go/exercises/connect/README.md +52 -0
- data/tracks/go/exercises/counter/README.md +42 -0
- data/tracks/go/exercises/crypto-square/README.md +92 -0
- data/tracks/go/exercises/custom-set/README.md +29 -0
- data/tracks/go/exercises/diamond/README.md +77 -0
- data/tracks/go/exercises/difference-of-squares/README.md +37 -0
- data/tracks/go/exercises/diffie-hellman/README.md +62 -0
- data/tracks/go/exercises/error-handling/README.md +31 -0
- data/tracks/go/exercises/etl/README.md +69 -0
- data/tracks/go/exercises/food-chain/README.md +88 -0
- data/tracks/go/exercises/forth/README.md +47 -0
- data/tracks/go/exercises/gigasecond/README.md +29 -0
- data/tracks/go/exercises/grade-school/README.md +60 -0
- data/tracks/go/exercises/grains/README.md +52 -0
- data/tracks/go/exercises/hamming/README.md +60 -0
- data/tracks/go/exercises/hello-world/README.md +39 -0
- data/tracks/go/exercises/hexadecimal/README.md +32 -0
- data/tracks/go/exercises/house/README.md +131 -0
- data/tracks/go/exercises/isogram/README.md +37 -0
- data/tracks/go/exercises/kindergarten-garden/README.md +84 -0
- data/tracks/go/exercises/largest-series-product/README.md +38 -0
- data/tracks/go/exercises/leap/README.md +51 -0
- data/tracks/go/exercises/ledger/README.md +36 -0
- data/tracks/go/exercises/luhn/README.md +89 -0
- data/tracks/go/exercises/matrix/README.md +63 -0
- data/tracks/go/exercises/meetup/README.md +48 -0
- data/tracks/go/exercises/minesweeper/README.md +48 -0
- data/tracks/go/exercises/nth-prime/README.md +33 -0
- data/tracks/go/exercises/nucleotide-count/README.md +51 -0
- data/tracks/go/exercises/ocr-numbers/README.md +103 -0
- data/tracks/go/exercises/octal/README.md +67 -0
- data/tracks/go/exercises/paasio/README.md +38 -0
- data/tracks/go/exercises/palindrome-products/README.md +58 -0
- data/tracks/go/exercises/pangram/README.md +33 -0
- data/tracks/go/exercises/parallel-letter-frequency/README.md +29 -0
- data/tracks/go/exercises/pascals-triangle/README.md +39 -0
- data/tracks/go/exercises/perfect-numbers/README.md +42 -0
- data/tracks/go/exercises/phone-number/README.md +52 -0
- data/tracks/go/exercises/pig-latin/README.md +42 -0
- data/tracks/go/exercises/poker/README.md +30 -0
- data/tracks/go/exercises/pov/README.md +64 -0
- data/tracks/go/exercises/prime-factors/README.md +54 -0
- data/tracks/go/exercises/protein-translation/README.md +67 -0
- data/tracks/go/exercises/pythagorean-triplet/README.md +42 -0
- data/tracks/go/exercises/queen-attack/README.md +51 -0
- data/tracks/go/exercises/raindrops/README.md +42 -0
- data/tracks/go/exercises/react/README.md +37 -0
- data/tracks/go/exercises/rna-transcription/README.md +43 -0
- data/tracks/go/exercises/robot-name/README.md +40 -0
- data/tracks/go/exercises/robot-simulator/README.md +52 -0
- data/tracks/go/exercises/roman-numerals/README.md +67 -0
- data/tracks/go/exercises/saddle-points/README.md +51 -0
- data/tracks/go/exercises/say/README.md +87 -0
- data/tracks/go/exercises/scrabble-score/README.md +62 -0
- data/tracks/go/exercises/secret-handshake/README.md +53 -0
- data/tracks/go/exercises/series/README.md +45 -0
- data/tracks/go/exercises/sieve/README.md +52 -0
- data/tracks/go/exercises/simple-cipher/README.md +108 -0
- data/tracks/go/exercises/strain/README.md +58 -0
- data/tracks/go/exercises/sum-of-multiples/README.md +36 -0
- data/tracks/go/exercises/tournament/README.md +86 -0
- data/tracks/go/exercises/transpose/README.md +83 -0
- data/tracks/go/exercises/tree-building/README.md +48 -0
- data/tracks/go/exercises/triangle/README.md +44 -0
- data/tracks/go/exercises/trinary/README.md +46 -0
- data/tracks/go/exercises/twelve-days/README.md +57 -0
- data/tracks/go/exercises/variable-length-quantity/README.md +57 -0
- data/tracks/go/exercises/word-count/README.md +37 -0
- data/tracks/go/exercises/word-search/README.md +48 -0
- data/tracks/go/exercises/wordy/README.md +81 -0
- data/tracks/haskell/README.md +2 -2
- data/tracks/haskell/exercises/beer-song/test/Tests.hs +1 -1
- data/tracks/haskell/exercises/food-chain/test/Tests.hs +1 -1
- data/tracks/haskell/exercises/house/test/Tests.hs +1 -1
- data/tracks/haskell/exercises/say/test/Tests.hs +1 -1
- data/tracks/java/config.json +10 -10
- data/tracks/java/exercises/rotational-cipher/src/example/java/RotationalCipher.java +5 -8
- data/tracks/java/exercises/rotational-cipher/src/test/java/RotationalCipherTest.java +3 -6
- data/tracks/javascript/config.json +397 -140
- data/tracks/kotlin/config.json +248 -63
- data/tracks/kotlin/config/exercise_readme.go.tmpl +16 -0
- data/tracks/kotlin/exercises/accumulate/README.md +38 -0
- data/tracks/kotlin/exercises/acronym/README.md +18 -0
- data/tracks/kotlin/exercises/all-your-base/README.md +38 -0
- data/tracks/kotlin/exercises/allergies/README.md +40 -0
- data/tracks/kotlin/exercises/anagram/README.md +16 -0
- data/tracks/kotlin/exercises/atbash-cipher/README.md +37 -0
- data/tracks/kotlin/exercises/bank-account/README.md +33 -0
- data/tracks/kotlin/exercises/beer-song/README.md +330 -0
- data/tracks/kotlin/exercises/binary-search/README.md +44 -0
- data/tracks/kotlin/exercises/binary/README.md +38 -0
- data/tracks/kotlin/exercises/bob/README.md +21 -0
- data/tracks/kotlin/exercises/bracket-push/README.md +13 -0
- data/tracks/kotlin/exercises/change/README.md +26 -0
- data/tracks/kotlin/exercises/clock/README.md +16 -0
- data/tracks/kotlin/exercises/collatz-conjecture/README.md +36 -0
- data/tracks/kotlin/exercises/complex-numbers/README.md +14 -0
- data/tracks/kotlin/exercises/diamond/README.md +62 -0
- data/tracks/kotlin/exercises/difference-of-squares/README.md +22 -0
- data/tracks/kotlin/exercises/etl/README.md +54 -0
- data/tracks/kotlin/exercises/flatten-array/README.md +21 -0
- data/tracks/kotlin/exercises/gigasecond/README.md +14 -0
- data/tracks/kotlin/exercises/grade-school/README.md +45 -0
- data/tracks/kotlin/exercises/grains/README.md +37 -0
- data/tracks/kotlin/exercises/hamming/README.md +45 -0
- data/tracks/kotlin/exercises/hello-world/README.md +24 -0
- data/tracks/kotlin/exercises/hexadecimal/README.md +17 -0
- data/tracks/kotlin/exercises/isogram/README.md +22 -0
- data/tracks/kotlin/exercises/largest-series-product/README.md +23 -0
- data/tracks/kotlin/exercises/leap/README.md +36 -0
- data/tracks/kotlin/exercises/linked-list/README.md +37 -0
- data/tracks/kotlin/exercises/list-ops/README.md +20 -0
- data/tracks/kotlin/exercises/luhn/README.md +74 -0
- data/tracks/kotlin/exercises/minesweeper/README.md +33 -0
- data/tracks/kotlin/exercises/nth-prime/README.md +18 -0
- data/tracks/kotlin/exercises/nucleotide-count/README.md +36 -0
- data/tracks/kotlin/exercises/pangram/README.md +18 -0
- data/tracks/kotlin/exercises/pascals-triangle/README.md +24 -0
- data/tracks/kotlin/exercises/perfect-numbers/README.md +27 -0
- data/tracks/kotlin/exercises/phone-number/README.md +37 -0
- data/tracks/kotlin/exercises/pig-latin/README.md +27 -0
- data/tracks/kotlin/exercises/prime-factors/README.md +39 -0
- data/tracks/kotlin/exercises/raindrops/README.md +27 -0
- data/tracks/kotlin/exercises/react/README.md +22 -0
- data/tracks/kotlin/exercises/rna-transcription/README.md +28 -0
- data/tracks/kotlin/exercises/robot-name/README.md +25 -0
- data/tracks/kotlin/exercises/robot-simulator/README.md +37 -0
- data/tracks/kotlin/exercises/roman-numerals/README.md +52 -0
- data/tracks/kotlin/exercises/saddle-points/README.md +36 -0
- data/tracks/kotlin/exercises/scrabble-score/README.md +47 -0
- data/tracks/kotlin/exercises/secret-handshake/README.md +38 -0
- data/tracks/kotlin/exercises/series/README.md +30 -0
- data/tracks/kotlin/exercises/sieve/README.md +37 -0
- data/tracks/kotlin/exercises/simple-cipher/README.md +93 -0
- data/tracks/kotlin/exercises/space-age/README.md +27 -0
- data/tracks/kotlin/exercises/spiral-matrix/README.md +33 -0
- data/tracks/kotlin/exercises/strain/README.md +43 -0
- data/tracks/kotlin/exercises/sublist/README.md +24 -0
- data/tracks/kotlin/exercises/sum-of-multiples/README.md +21 -0
- data/tracks/kotlin/exercises/triangle/README.md +29 -0
- data/tracks/kotlin/exercises/word-count/README.md +22 -0
- data/tracks/ocaml/config/exercise_readme.go.tmpl +16 -0
- data/tracks/ocaml/exercises/acronym/README.md +55 -0
- data/tracks/ocaml/exercises/all-your-base/README.md +75 -0
- data/tracks/ocaml/exercises/anagram/README.md +53 -0
- data/tracks/ocaml/exercises/atbash-cipher/README.md +93 -0
- data/tracks/ocaml/exercises/beer-song/README.md +367 -0
- data/tracks/ocaml/exercises/binary-search/README.md +81 -0
- data/tracks/ocaml/exercises/bob/README.md +87 -0
- data/tracks/ocaml/exercises/bowling/README.md +93 -0
- data/tracks/ocaml/exercises/bracket-push/README.md +50 -0
- data/tracks/ocaml/exercises/change/README.md +63 -0
- data/tracks/ocaml/exercises/connect/README.md +74 -0
- data/tracks/ocaml/exercises/custom-set/README.md +51 -0
- data/tracks/ocaml/exercises/difference-of-squares/README.md +59 -0
- data/tracks/ocaml/exercises/dominoes/README.md +58 -0
- data/tracks/ocaml/exercises/etl/README.md +91 -0
- data/tracks/ocaml/exercises/forth/README.md +69 -0
- data/tracks/ocaml/exercises/grade-school/README.md +82 -0
- data/tracks/ocaml/exercises/hamming/README.md +82 -0
- data/tracks/ocaml/exercises/hangman/README.md +61 -0
- data/tracks/ocaml/exercises/hello-world/README.md +61 -0
- data/tracks/ocaml/exercises/hexadecimal/README.md +54 -0
- data/tracks/ocaml/exercises/leap/README.md +73 -0
- data/tracks/ocaml/exercises/list-ops/README.md +50 -0
- data/tracks/ocaml/exercises/luhn/README.md +111 -0
- data/tracks/ocaml/exercises/meetup/README.md +70 -0
- data/tracks/ocaml/exercises/minesweeper/README.md +70 -0
- data/tracks/ocaml/exercises/nucleotide-count/README.md +73 -0
- data/tracks/ocaml/exercises/pangram/README.md +55 -0
- data/tracks/ocaml/exercises/phone-number/README.md +74 -0
- data/tracks/ocaml/exercises/point-mutations/README.md +81 -0
- data/tracks/ocaml/exercises/prime-factors/README.md +76 -0
- data/tracks/ocaml/exercises/raindrops/README.md +64 -0
- data/tracks/ocaml/exercises/react/README.md +59 -0
- data/tracks/ocaml/exercises/rna-transcription/README.md +65 -0
- data/tracks/ocaml/exercises/robot-name/README.md +62 -0
- data/tracks/ocaml/exercises/roman-numerals/README.md +89 -0
- data/tracks/ocaml/exercises/run-length-encoding/README.md +70 -0
- data/tracks/ocaml/exercises/say/README.md +109 -0
- data/tracks/ocaml/exercises/space-age/README.md +64 -0
- data/tracks/ocaml/exercises/triangle/README.md +66 -0
- data/tracks/ocaml/exercises/word-count/README.md +59 -0
- data/tracks/ocaml/exercises/zipper/README.md +71 -0
- data/tracks/perl5/README.md +1 -1
- data/tracks/perl5/config/exercise_readme.go.tmpl +16 -0
- data/tracks/perl5/exercises/accumulate/README.md +35 -0
- data/tracks/perl5/exercises/all-your-base/README.md +35 -0
- data/tracks/perl5/exercises/allergies/README.md +37 -0
- data/tracks/perl5/exercises/anagram/README.md +13 -0
- data/tracks/perl5/exercises/atbash-cipher/README.md +34 -0
- data/tracks/perl5/exercises/beer-song/README.md +327 -0
- data/tracks/perl5/exercises/binary-search-tree/README.md +60 -0
- data/tracks/perl5/exercises/binary-search/README.md +41 -0
- data/tracks/perl5/exercises/binary/README.md +35 -0
- data/tracks/perl5/exercises/bob/README.md +18 -0
- data/tracks/perl5/exercises/clock/README.md +13 -0
- data/tracks/perl5/exercises/crypto-square/README.md +74 -0
- data/tracks/perl5/exercises/custom-set/README.md +11 -0
- data/tracks/perl5/exercises/difference-of-squares/README.md +19 -0
- data/tracks/perl5/exercises/etl/README.md +51 -0
- data/tracks/perl5/exercises/food-chain/README.md +70 -0
- data/tracks/perl5/exercises/gigasecond/README.md +11 -0
- data/tracks/perl5/exercises/grade-school/README.md +42 -0
- data/tracks/perl5/exercises/grains/README.md +34 -0
- data/tracks/perl5/exercises/hamming/README.md +42 -0
- data/tracks/perl5/exercises/hello-world/README.md +21 -0
- data/tracks/perl5/exercises/hexadecimal/README.md +14 -0
- data/tracks/perl5/exercises/house/README.md +113 -0
- data/tracks/perl5/exercises/kindergarten-garden/README.md +66 -0
- data/tracks/perl5/exercises/largest-series-product/README.md +20 -0
- data/tracks/perl5/exercises/leap/README.md +33 -0
- data/tracks/perl5/exercises/linked-list/README.md +34 -0
- data/tracks/perl5/exercises/list-ops/README.md +10 -0
- data/tracks/perl5/exercises/luhn/Example.pm +20 -42
- data/tracks/perl5/exercises/luhn/Luhn.pm +9 -0
- data/tracks/perl5/exercises/luhn/README.md +71 -0
- data/tracks/perl5/exercises/luhn/example.yaml +38 -0
- data/tracks/perl5/exercises/luhn/luhn.t +127 -26
- data/tracks/perl5/exercises/matrix/README.md +45 -0
- data/tracks/perl5/exercises/meetup/README.md +30 -0
- data/tracks/perl5/exercises/minesweeper/README.md +30 -0
- data/tracks/perl5/exercises/nucleotide-count/README.md +33 -0
- data/tracks/perl5/exercises/ocr-numbers/README.md +85 -0
- data/tracks/perl5/exercises/palindrome-products/README.md +40 -0
- data/tracks/perl5/exercises/pascals-triangle/README.md +21 -0
- data/tracks/perl5/exercises/phone-number/Example.pm +6 -26
- data/tracks/perl5/exercises/phone-number/PhoneNumber.pm +5 -0
- data/tracks/perl5/exercises/phone-number/README.md +34 -0
- data/tracks/perl5/exercises/phone-number/example.yaml +15 -0
- data/tracks/perl5/exercises/phone-number/phone-number.t +138 -0
- data/tracks/perl5/exercises/pig-latin/README.md +24 -0
- data/tracks/perl5/exercises/point-mutations/README.md +41 -0
- data/tracks/perl5/exercises/prime-factors/README.md +36 -0
- data/tracks/perl5/exercises/proverb/README.md +18 -0
- data/tracks/perl5/exercises/pythagorean-triplet/README.md +24 -0
- data/tracks/perl5/exercises/queen-attack/README.md +33 -0
- data/tracks/perl5/exercises/raindrops/README.md +24 -0
- data/tracks/perl5/exercises/rna-transcription/README.md +25 -0
- data/tracks/perl5/exercises/robot-name/README.md +22 -0
- data/tracks/perl5/exercises/robot-simulator/README.md +34 -0
- data/tracks/perl5/exercises/roman-numerals/README.md +49 -0
- data/tracks/perl5/exercises/saddle-points/README.md +33 -0
- data/tracks/perl5/exercises/say/README.md +69 -0
- data/tracks/perl5/exercises/scrabble-score/README.md +44 -0
- data/tracks/perl5/exercises/secret-handshake/README.md +35 -0
- data/tracks/perl5/exercises/series/README.md +27 -0
- data/tracks/perl5/exercises/sieve/README.md +34 -0
- data/tracks/perl5/exercises/simple-cipher/README.md +90 -0
- data/tracks/perl5/exercises/simple-linked-list/README.md +28 -0
- data/tracks/perl5/exercises/space-age/README.md +24 -0
- data/tracks/perl5/exercises/strain/README.md +40 -0
- data/tracks/perl5/exercises/sublist/README.md +21 -0
- data/tracks/perl5/exercises/sum-of-multiples/README.md +18 -0
- data/tracks/perl5/exercises/triangle/README.md +26 -0
- data/tracks/perl5/exercises/trinary/README.md +28 -0
- data/tracks/perl5/exercises/twelve-days/README.md +35 -0
- data/tracks/perl5/exercises/word-count/README.md +19 -0
- data/tracks/perl5/exercises/wordy/README.md +63 -0
- data/tracks/perl6/README.md +1 -1
- data/tracks/perl6/config/exercise_readme.go.tmpl +16 -0
- data/tracks/perl6/exercises/accumulate/README.md +50 -0
- data/tracks/perl6/exercises/all-your-base/README.md +50 -0
- data/tracks/perl6/exercises/allergies/README.md +52 -0
- data/tracks/perl6/exercises/anagram/README.md +28 -0
- data/tracks/perl6/exercises/atbash-cipher/README.md +49 -0
- data/tracks/perl6/exercises/binary/README.md +50 -0
- data/tracks/perl6/exercises/bob/README.md +33 -0
- data/tracks/perl6/exercises/clock/README.md +28 -0
- data/tracks/perl6/exercises/flatten-array/README.md +33 -0
- data/tracks/perl6/exercises/grade-school/README.md +57 -0
- data/tracks/perl6/exercises/grains/README.md +49 -0
- data/tracks/perl6/exercises/hello-world/README.md +36 -0
- data/tracks/perl6/exercises/leap/README.md +48 -0
- data/tracks/perl6/exercises/linked-list/README.md +49 -0
- data/tracks/perl6/exercises/linked-list/example.yaml +1 -1
- data/tracks/perl6/exercises/linked-list/linked-list.t +1 -1
- data/tracks/perl6/exercises/luhn/README.md +86 -0
- data/tracks/perl6/exercises/phone-number/README.md +49 -0
- data/tracks/perl6/exercises/raindrops/README.md +39 -0
- data/tracks/perl6/exercises/rna-transcription/README.md +40 -0
- data/tracks/perl6/exercises/robot-name/README.md +37 -0
- data/tracks/perl6/exercises/scrabble-score/README.md +59 -0
- data/tracks/perl6/exercises/space-age/README.md +39 -0
- data/tracks/perl6/exercises/trinary/README.md +43 -0
- data/tracks/perl6/exercises/word-count/README.md +34 -0
- data/tracks/perl6/exercises/wordy/README.md +78 -0
- data/tracks/php/config.json +156 -3
- data/tracks/php/config/exercise_readme.go.tmpl +16 -0
- data/tracks/php/exercises/accumulate/README.md +50 -0
- data/tracks/php/exercises/acronym/README.md +30 -0
- data/tracks/php/exercises/allergies/README.md +52 -0
- data/tracks/php/exercises/anagram/README.md +28 -0
- data/tracks/php/exercises/atbash-cipher/README.md +49 -0
- data/tracks/php/exercises/beer-song/README.md +342 -0
- data/tracks/php/exercises/binary-search/README.md +56 -0
- data/tracks/php/exercises/binary/README.md +50 -0
- data/tracks/php/exercises/bob/README.md +36 -0
- data/tracks/php/exercises/book-store/README.md +89 -0
- data/tracks/php/exercises/bowling/README.md +68 -0
- data/tracks/php/exercises/bracket-push/README.md +25 -0
- data/tracks/php/exercises/change/README.md +38 -0
- data/tracks/php/exercises/clock/README.md +28 -0
- data/tracks/php/exercises/connect/README.md +49 -0
- data/tracks/php/exercises/difference-of-squares/README.md +34 -0
- data/tracks/php/exercises/etl/README.md +66 -0
- data/tracks/php/exercises/gigasecond/README.md +26 -0
- data/tracks/php/exercises/grade-school/README.md +57 -0
- data/tracks/php/exercises/grains/README.md +49 -0
- data/tracks/php/exercises/hamming/README.md +57 -0
- data/tracks/php/exercises/hello-world/README.md +36 -0
- data/tracks/php/exercises/isogram/README.md +34 -0
- data/tracks/php/exercises/largest-series-product/README.md +35 -0
- data/tracks/php/exercises/leap/README.md +48 -0
- data/tracks/php/exercises/luhn/README.md +86 -0
- data/tracks/php/exercises/markdown/README.md +33 -0
- data/tracks/php/exercises/minesweeper/README.md +45 -0
- data/tracks/php/exercises/nth-prime/README.md +30 -0
- data/tracks/php/exercises/nucleotide-count/README.md +48 -0
- data/tracks/php/exercises/ocr-numbers/README.md +100 -0
- data/tracks/php/exercises/pangram/README.md +30 -0
- data/tracks/php/exercises/pascals-triangle/README.md +36 -0
- data/tracks/php/exercises/perfect-numbers/README.md +39 -0
- data/tracks/php/exercises/phone-number/README.md +49 -0
- data/tracks/php/exercises/pig-latin/README.md +39 -0
- data/tracks/php/exercises/prime-factors/README.md +51 -0
- data/tracks/php/exercises/queen-attack/README.md +48 -0
- data/tracks/php/exercises/raindrops/README.md +39 -0
- data/tracks/php/exercises/rna-transcription/README.md +40 -0
- data/tracks/php/exercises/robot-name/README.md +37 -0
- data/tracks/php/exercises/robot-simulator/README.md +49 -0
- data/tracks/php/exercises/roman-numerals/README.md +64 -0
- data/tracks/php/exercises/scrabble-score/README.md +59 -0
- data/tracks/php/exercises/sieve/README.md +49 -0
- data/tracks/php/exercises/space-age/README.md +39 -0
- data/tracks/php/exercises/sum-of-multiples/README.md +33 -0
- data/tracks/php/exercises/triangle/README.md +41 -0
- data/tracks/php/exercises/trinary/README.md +43 -0
- data/tracks/php/exercises/variable-length-quantity/README.md +54 -0
- data/tracks/php/exercises/word-count/README.md +34 -0
- data/tracks/php/exercises/wordy/README.md +78 -0
- data/tracks/rust/exercises/grains/tests/grains.rs +0 -1
- data/tracks/sml/config/exercise_readme.go.tmpl +16 -0
- data/tracks/sml/exercises/accumulate/README.md +49 -0
- data/tracks/sml/exercises/allergies/README.md +51 -0
- data/tracks/sml/exercises/anagram/README.md +27 -0
- data/tracks/sml/exercises/binary/README.md +49 -0
- data/tracks/sml/exercises/flatten-array/README.md +32 -0
- data/tracks/sml/exercises/hamming/README.md +56 -0
- data/tracks/sml/exercises/nth-prime/README.md +29 -0
- data/tracks/sml/exercises/raindrops/README.md +38 -0
- metadata +433 -4
- data/tracks/perl5/exercises/phone-number/cases.json +0 -44
- data/tracks/perl5/exercises/phone-number/phone.t +0 -43
data/tracks/cpp/CMakeLists.txt
CHANGED
data/tracks/cpp/config.json
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
# Get the exercise name from the current directory
|
2
|
+
get_filename_component(exercise ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
3
|
+
|
4
|
+
# Basic CMake project
|
5
|
+
cmake_minimum_required(VERSION 2.8.11)
|
6
|
+
|
7
|
+
# Name the project after the exercise
|
8
|
+
project(${exercise} CXX)
|
9
|
+
|
10
|
+
# Locate Boost libraries: unit_test_framework, date_time and regex
|
11
|
+
set(Boost_USE_STATIC_LIBS ON)
|
12
|
+
set(Boost_USE_MULTITHREADED ON)
|
13
|
+
set(Boost_USE_STATIC_RUNTIME OFF)
|
14
|
+
find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework date_time regex)
|
15
|
+
|
16
|
+
# Enable C++11 features on gcc/clang
|
17
|
+
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "(GNU|Clang)")
|
18
|
+
set(CMAKE_CXX_FLAGS "-std=c++11")
|
19
|
+
endif()
|
20
|
+
|
21
|
+
# Configure to run all the tests?
|
22
|
+
if(${EXERCISM_RUN_ALL_TESTS})
|
23
|
+
add_definitions(-DEXERCISM_RUN_ALL_TESTS)
|
24
|
+
endif()
|
25
|
+
|
26
|
+
# Get a source filename from the exercise name by replacing -'s with _'s
|
27
|
+
string(REPLACE "-" "_" file ${exercise})
|
28
|
+
|
29
|
+
# Implementation could be only a header
|
30
|
+
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.cpp)
|
31
|
+
set(exercise_cpp ${file}.cpp)
|
32
|
+
else()
|
33
|
+
set(exercise_cpp "")
|
34
|
+
endif()
|
35
|
+
|
36
|
+
# Build executable from sources and headers
|
37
|
+
add_executable(${exercise} ${file}_test.cpp ${exercise_cpp} ${file}.h)
|
38
|
+
|
39
|
+
# We need boost includes
|
40
|
+
target_include_directories(${exercise} PRIVATE ${Boost_INCLUDE_DIRS})
|
41
|
+
|
42
|
+
# We need boost libraries
|
43
|
+
target_link_libraries(${exercise} ${Boost_LIBRARIES})
|
44
|
+
|
45
|
+
# Tell MSVC not to warn us about unchecked iterators in debug builds
|
46
|
+
if(${MSVC})
|
47
|
+
set_target_properties(${exercise} PROPERTIES
|
48
|
+
COMPILE_DEFINITIONS_DEBUG _SCL_SECURE_NO_WARNINGS)
|
49
|
+
endif()
|
50
|
+
|
51
|
+
# Run the tests on every build
|
52
|
+
add_custom_command(TARGET ${exercise} POST_BUILD COMMAND ${exercise})
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#include "bracket_push.h"
|
2
|
+
#define BOOST_TEST_MAIN
|
3
|
+
#include <boost/test/unit_test.hpp>
|
4
|
+
|
5
|
+
BOOST_AUTO_TEST_CASE(paired_square_brackets)
|
6
|
+
{
|
7
|
+
BOOST_REQUIRE(bracket_push::check("[]"));
|
8
|
+
}
|
9
|
+
|
10
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
11
|
+
BOOST_AUTO_TEST_CASE(empty_string)
|
12
|
+
{
|
13
|
+
BOOST_REQUIRE(bracket_push::check(""));
|
14
|
+
}
|
15
|
+
|
16
|
+
BOOST_AUTO_TEST_CASE(unpaired_brackets)
|
17
|
+
{
|
18
|
+
BOOST_REQUIRE(!bracket_push::check("[["));
|
19
|
+
}
|
20
|
+
|
21
|
+
BOOST_AUTO_TEST_CASE(wrong_ordered_brackets)
|
22
|
+
{
|
23
|
+
BOOST_REQUIRE(!bracket_push::check("}{"));
|
24
|
+
}
|
25
|
+
|
26
|
+
BOOST_AUTO_TEST_CASE(wrong_closing_bracket)
|
27
|
+
{
|
28
|
+
BOOST_REQUIRE(!bracket_push::check("{]"));
|
29
|
+
}
|
30
|
+
|
31
|
+
BOOST_AUTO_TEST_CASE(paired_with_whitespace)
|
32
|
+
{
|
33
|
+
BOOST_REQUIRE(bracket_push::check("{ }"));
|
34
|
+
}
|
35
|
+
|
36
|
+
BOOST_AUTO_TEST_CASE(simple_nested_brackets)
|
37
|
+
{
|
38
|
+
BOOST_REQUIRE(bracket_push::check("{[]}"));
|
39
|
+
}
|
40
|
+
|
41
|
+
BOOST_AUTO_TEST_CASE(several_paired_brackets)
|
42
|
+
{
|
43
|
+
BOOST_REQUIRE(bracket_push::check("{}[]"));
|
44
|
+
}
|
45
|
+
|
46
|
+
BOOST_AUTO_TEST_CASE(paired_nested_brackets)
|
47
|
+
{
|
48
|
+
BOOST_REQUIRE(bracket_push::check("([{}({}[])])"));
|
49
|
+
}
|
50
|
+
|
51
|
+
BOOST_AUTO_TEST_CASE(unopened_closing_brackets)
|
52
|
+
{
|
53
|
+
BOOST_REQUIRE(!bracket_push::check("{[)][]}"));
|
54
|
+
}
|
55
|
+
|
56
|
+
BOOST_AUTO_TEST_CASE(unpaired_nested_brackets)
|
57
|
+
{
|
58
|
+
BOOST_REQUIRE(!bracket_push::check("([{])"));
|
59
|
+
}
|
60
|
+
|
61
|
+
BOOST_AUTO_TEST_CASE(paired_wrong_nested_brackets)
|
62
|
+
{
|
63
|
+
BOOST_REQUIRE(!bracket_push::check("[({]})"));
|
64
|
+
}
|
65
|
+
|
66
|
+
BOOST_AUTO_TEST_CASE(math_expression)
|
67
|
+
{
|
68
|
+
BOOST_REQUIRE(bracket_push::check("(((185 + 223.85) * 15) - 543)/2"));
|
69
|
+
}
|
70
|
+
|
71
|
+
BOOST_AUTO_TEST_CASE(complex_latex_expression)
|
72
|
+
{
|
73
|
+
BOOST_REQUIRE(bracket_push::check("\\left(\\begin{array}{cc} \\frac{1}{3} & x\\\\ \\mathrm{e}^{x} &... x^2 \\end{array}\\right)"));
|
74
|
+
}
|
75
|
+
#endif
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#include "bracket_push.h"
|
2
|
+
#include <stack>
|
3
|
+
|
4
|
+
using namespace std;
|
5
|
+
|
6
|
+
namespace bracket_push {
|
7
|
+
|
8
|
+
bool check(string const& expression)
|
9
|
+
{
|
10
|
+
const string open("({[");
|
11
|
+
const string close(")}]");
|
12
|
+
stack<char> st;
|
13
|
+
for (const char c : expression) {
|
14
|
+
if (open.find(c) != string::npos) {
|
15
|
+
st.push(c);
|
16
|
+
}
|
17
|
+
else if (close.find(c) != string::npos) {
|
18
|
+
if (st.empty() || st.top() != open[close.find(c)]) {
|
19
|
+
return false;
|
20
|
+
}
|
21
|
+
st.pop();
|
22
|
+
}
|
23
|
+
}
|
24
|
+
return st.empty();
|
25
|
+
}
|
26
|
+
|
27
|
+
}
|
28
|
+
|
@@ -6,301 +6,399 @@
|
|
6
6
|
"test_pattern": ".*[.]spec[.]js$",
|
7
7
|
"exercises": [
|
8
8
|
{
|
9
|
+
"uuid": "9ce0f408-6d7b-4466-a390-75aeaf9492f2",
|
9
10
|
"slug": "hello-world",
|
11
|
+
"core": false,
|
12
|
+
"unlocked_by": null,
|
10
13
|
"difficulty": 1,
|
11
14
|
"topics": [
|
12
|
-
|
13
15
|
]
|
14
16
|
},
|
15
17
|
{
|
18
|
+
"uuid": "7c8294ee-5924-4bf8-a72f-31d0e2d7d9a0",
|
16
19
|
"slug": "leap",
|
20
|
+
"core": false,
|
21
|
+
"unlocked_by": null,
|
17
22
|
"difficulty": 1,
|
18
23
|
"topics": [
|
19
|
-
|
20
24
|
]
|
21
25
|
},
|
22
26
|
{
|
27
|
+
"uuid": "d773c4ef-c09e-40e4-a7fe-01456cb4a12a",
|
23
28
|
"slug": "hamming",
|
29
|
+
"core": false,
|
30
|
+
"unlocked_by": null,
|
24
31
|
"difficulty": 1,
|
25
32
|
"topics": [
|
26
|
-
|
27
33
|
]
|
28
34
|
},
|
29
35
|
{
|
36
|
+
"uuid": "342974d6-9083-4754-a6c5-ed1e19e40ec5",
|
30
37
|
"slug": "rna-transcription",
|
38
|
+
"core": false,
|
39
|
+
"unlocked_by": null,
|
31
40
|
"difficulty": 1,
|
32
41
|
"topics": [
|
33
|
-
|
34
42
|
]
|
35
43
|
},
|
36
44
|
{
|
45
|
+
"uuid": "a5bf36f0-5d3c-41d4-8d54-e37e484e59cd",
|
37
46
|
"slug": "bob",
|
47
|
+
"core": false,
|
48
|
+
"unlocked_by": null,
|
38
49
|
"difficulty": 1,
|
39
50
|
"topics": [
|
40
|
-
|
41
51
|
]
|
42
52
|
},
|
43
53
|
{
|
54
|
+
"uuid": "fd7b62d4-266b-4e84-a526-bf3d47901216",
|
44
55
|
"slug": "gigasecond",
|
56
|
+
"core": false,
|
57
|
+
"unlocked_by": null,
|
45
58
|
"difficulty": 1,
|
46
59
|
"topics": [
|
47
|
-
|
48
60
|
]
|
49
61
|
},
|
50
62
|
{
|
63
|
+
"uuid": "c6691fd2-e10d-47df-acbf-3adeac5a2f89",
|
51
64
|
"slug": "perfect-numbers",
|
65
|
+
"core": false,
|
66
|
+
"unlocked_by": null,
|
52
67
|
"difficulty": 1,
|
53
68
|
"topics": [
|
54
|
-
|
55
69
|
]
|
56
70
|
},
|
57
71
|
{
|
72
|
+
"uuid": "0073ff9a-cd6a-43cf-b8bf-4d5d8117b81b",
|
58
73
|
"slug": "word-count",
|
74
|
+
"core": false,
|
75
|
+
"unlocked_by": null,
|
59
76
|
"difficulty": 1,
|
60
77
|
"topics": [
|
61
|
-
|
62
78
|
]
|
63
79
|
},
|
64
80
|
{
|
81
|
+
"uuid": "da5b2b34-a1a7-4970-81f9-4665d875398b",
|
65
82
|
"slug": "pangram",
|
83
|
+
"core": false,
|
84
|
+
"unlocked_by": null,
|
66
85
|
"difficulty": 1,
|
67
86
|
"topics": [
|
68
|
-
|
69
87
|
]
|
70
88
|
},
|
71
89
|
{
|
90
|
+
"uuid": "6573f168-d8fc-4ccf-a864-1a61f432fae1",
|
72
91
|
"slug": "beer-song",
|
92
|
+
"core": false,
|
93
|
+
"unlocked_by": null,
|
73
94
|
"difficulty": 1,
|
74
95
|
"topics": [
|
75
|
-
|
76
96
|
]
|
77
97
|
},
|
78
98
|
{
|
99
|
+
"uuid": "82775adb-eabe-4d44-91f5-4080b8834a4a",
|
79
100
|
"slug": "phone-number",
|
101
|
+
"core": false,
|
102
|
+
"unlocked_by": null,
|
80
103
|
"difficulty": 1,
|
81
104
|
"topics": [
|
82
|
-
|
83
105
|
]
|
84
106
|
},
|
85
107
|
{
|
108
|
+
"uuid": "309fa4f1-e03a-4ab2-b371-cdf742501cf7",
|
86
109
|
"slug": "anagram",
|
110
|
+
"core": false,
|
111
|
+
"unlocked_by": null,
|
87
112
|
"difficulty": 1,
|
88
113
|
"topics": [
|
89
|
-
|
90
114
|
]
|
91
115
|
},
|
92
116
|
{
|
117
|
+
"uuid": "62672dc7-e827-4c2e-a282-d6df45b60bbd",
|
93
118
|
"slug": "food-chain",
|
119
|
+
"core": false,
|
120
|
+
"unlocked_by": null,
|
94
121
|
"difficulty": 1,
|
95
122
|
"topics": [
|
96
|
-
|
97
123
|
]
|
98
124
|
},
|
99
125
|
{
|
126
|
+
"uuid": "64637322-33bc-401f-8cec-1f9810a41f75",
|
100
127
|
"slug": "grade-school",
|
128
|
+
"core": false,
|
129
|
+
"unlocked_by": null,
|
101
130
|
"difficulty": 1,
|
102
131
|
"topics": [
|
103
|
-
|
104
132
|
]
|
105
133
|
},
|
106
134
|
{
|
135
|
+
"uuid": "03f4dfea-e6db-4754-b2c8-ca06c8b81ef1",
|
107
136
|
"slug": "robot-name",
|
137
|
+
"core": false,
|
138
|
+
"unlocked_by": null,
|
108
139
|
"difficulty": 1,
|
109
140
|
"topics": [
|
110
|
-
|
111
141
|
]
|
112
142
|
},
|
113
143
|
{
|
144
|
+
"uuid": "db16804b-0f63-445d-8beb-99e0f7218d66",
|
114
145
|
"slug": "etl",
|
146
|
+
"core": false,
|
147
|
+
"unlocked_by": null,
|
115
148
|
"difficulty": 1,
|
116
149
|
"topics": [
|
117
|
-
|
118
150
|
]
|
119
151
|
},
|
120
152
|
{
|
153
|
+
"uuid": "4be85b5e-6b13-11e7-907b-a6006ad3dba0",
|
154
|
+
"slug": "sublist",
|
155
|
+
"difficulty": 4,
|
156
|
+
"core": false,
|
157
|
+
"unlocked_by": null,
|
158
|
+
"topics": [
|
159
|
+
"lists"
|
160
|
+
]
|
161
|
+
},
|
162
|
+
{
|
163
|
+
"uuid": "d9d757ed-ebe6-4d4a-aa73-f6834221cd54",
|
121
164
|
"slug": "space-age",
|
165
|
+
"core": false,
|
166
|
+
"unlocked_by": null,
|
122
167
|
"difficulty": 1,
|
123
168
|
"topics": [
|
124
|
-
|
125
169
|
]
|
126
170
|
},
|
127
171
|
{
|
172
|
+
"uuid": "d003975a-9045-4f03-9ad9-c15db584dc13",
|
128
173
|
"slug": "grains",
|
174
|
+
"core": false,
|
175
|
+
"unlocked_by": null,
|
129
176
|
"difficulty": 1,
|
130
177
|
"topics": [
|
131
|
-
|
132
178
|
]
|
133
179
|
},
|
134
180
|
{
|
181
|
+
"uuid": "ed3ca73a-a0f0-46b8-8013-8b6d20758c8f",
|
135
182
|
"slug": "triangle",
|
183
|
+
"core": false,
|
184
|
+
"unlocked_by": null,
|
136
185
|
"difficulty": 1,
|
137
186
|
"topics": [
|
138
|
-
|
139
187
|
]
|
140
188
|
},
|
141
189
|
{
|
190
|
+
"uuid": "4e0e2c30-be33-49b6-b196-213888a93a0c",
|
142
191
|
"slug": "clock",
|
192
|
+
"core": false,
|
193
|
+
"unlocked_by": null,
|
143
194
|
"difficulty": 1,
|
144
195
|
"topics": [
|
145
|
-
|
146
196
|
]
|
147
197
|
},
|
148
198
|
{
|
199
|
+
"uuid": "127eccbd-3009-4a8f-95c1-7d8aeb608550",
|
149
200
|
"slug": "diffie-hellman",
|
201
|
+
"core": false,
|
202
|
+
"unlocked_by": null,
|
150
203
|
"difficulty": 3,
|
151
204
|
"topics": [
|
152
205
|
"Cryptography"
|
153
206
|
]
|
154
207
|
},
|
155
208
|
{
|
209
|
+
"uuid": "440d78d1-9dea-466f-9bd4-935eed067409",
|
156
210
|
"slug": "acronym",
|
211
|
+
"core": false,
|
212
|
+
"unlocked_by": null,
|
157
213
|
"difficulty": 1,
|
158
214
|
"topics": [
|
159
|
-
|
160
215
|
]
|
161
216
|
},
|
162
217
|
{
|
218
|
+
"uuid": "11771d47-1109-4579-a62b-e0b8e9583485",
|
163
219
|
"slug": "scrabble-score",
|
220
|
+
"core": false,
|
221
|
+
"unlocked_by": null,
|
164
222
|
"difficulty": 1,
|
165
223
|
"topics": [
|
166
|
-
|
167
224
|
]
|
168
225
|
},
|
169
226
|
{
|
227
|
+
"uuid": "2fc4f834-a51c-42b8-a4d9-5263229e7648",
|
170
228
|
"slug": "roman-numerals",
|
229
|
+
"core": false,
|
230
|
+
"unlocked_by": null,
|
171
231
|
"difficulty": 1,
|
172
232
|
"topics": [
|
173
|
-
|
174
233
|
]
|
175
234
|
},
|
176
235
|
{
|
236
|
+
"uuid": "bf0b1f95-3425-4345-8a12-3a80d49b49c9",
|
177
237
|
"slug": "circular-buffer",
|
238
|
+
"core": false,
|
239
|
+
"unlocked_by": null,
|
178
240
|
"difficulty": 1,
|
179
241
|
"topics": [
|
180
|
-
|
181
242
|
]
|
182
243
|
},
|
183
244
|
{
|
245
|
+
"uuid": "f43cdddf-eea8-4c4a-8359-c69e20ff9661",
|
184
246
|
"slug": "prime-factors",
|
247
|
+
"core": false,
|
248
|
+
"unlocked_by": null,
|
185
249
|
"difficulty": 1,
|
186
250
|
"topics": [
|
187
|
-
|
188
251
|
]
|
189
252
|
},
|
190
253
|
{
|
254
|
+
"uuid": "f77ac2d1-cf3a-497d-bf04-b484a5a9cb37",
|
191
255
|
"slug": "raindrops",
|
256
|
+
"core": false,
|
257
|
+
"unlocked_by": null,
|
192
258
|
"difficulty": 1,
|
193
259
|
"topics": [
|
194
|
-
|
195
260
|
]
|
196
261
|
},
|
197
262
|
{
|
263
|
+
"uuid": "9d33d21c-e695-427f-9f58-dd9498d61318",
|
198
264
|
"slug": "allergies",
|
265
|
+
"core": false,
|
266
|
+
"unlocked_by": null,
|
199
267
|
"difficulty": 1,
|
200
268
|
"topics": [
|
201
|
-
|
202
269
|
]
|
203
270
|
},
|
204
271
|
{
|
272
|
+
"uuid": "8407f9d5-7a7e-40c8-aace-a6a8294ae5e9",
|
205
273
|
"slug": "strain",
|
274
|
+
"core": false,
|
275
|
+
"unlocked_by": null,
|
206
276
|
"difficulty": 1,
|
207
277
|
"topics": [
|
208
|
-
|
209
278
|
]
|
210
279
|
},
|
211
280
|
{
|
281
|
+
"uuid": "a70e6027-eebe-43a1-84a6-763faa736169",
|
212
282
|
"slug": "atbash-cipher",
|
283
|
+
"core": false,
|
284
|
+
"unlocked_by": null,
|
213
285
|
"difficulty": 1,
|
214
286
|
"topics": [
|
215
|
-
|
216
287
|
]
|
217
288
|
},
|
218
289
|
{
|
290
|
+
"uuid": "6ebe247c-3d11-48b7-8e6f-39f98359d233",
|
219
291
|
"slug": "accumulate",
|
292
|
+
"core": false,
|
293
|
+
"unlocked_by": null,
|
220
294
|
"difficulty": 1,
|
221
295
|
"topics": [
|
222
|
-
|
223
296
|
]
|
224
297
|
},
|
225
298
|
{
|
299
|
+
"uuid": "4dc30879-a589-4dd3-b7b6-22261f9d1520",
|
226
300
|
"slug": "crypto-square",
|
301
|
+
"core": false,
|
302
|
+
"unlocked_by": null,
|
227
303
|
"difficulty": 1,
|
228
304
|
"topics": [
|
229
|
-
|
230
305
|
]
|
231
306
|
},
|
232
307
|
{
|
308
|
+
"uuid": "127287d1-ba44-4400-884a-6fe5f72e210f",
|
233
309
|
"slug": "sieve",
|
310
|
+
"core": false,
|
311
|
+
"unlocked_by": null,
|
234
312
|
"difficulty": 1,
|
235
313
|
"topics": [
|
236
|
-
|
237
314
|
]
|
238
315
|
},
|
239
316
|
{
|
317
|
+
"uuid": "62d60b42-93bc-4de9-90d1-1ca18a847812",
|
240
318
|
"slug": "simple-cipher",
|
319
|
+
"core": false,
|
320
|
+
"unlocked_by": null,
|
241
321
|
"difficulty": 1,
|
242
322
|
"topics": [
|
243
|
-
|
244
323
|
]
|
245
324
|
},
|
246
325
|
{
|
326
|
+
"uuid": "28872cc9-f1ef-487f-9a79-6bf7983148bf",
|
247
327
|
"slug": "luhn",
|
328
|
+
"core": false,
|
329
|
+
"unlocked_by": null,
|
248
330
|
"difficulty": 1,
|
249
331
|
"topics": [
|
250
|
-
|
251
332
|
]
|
252
333
|
},
|
253
334
|
{
|
335
|
+
"uuid": "16e25a38-7ce3-4ccd-b2f0-1550b837fe9b",
|
254
336
|
"slug": "pig-latin",
|
337
|
+
"core": false,
|
338
|
+
"unlocked_by": null,
|
255
339
|
"difficulty": 1,
|
256
340
|
"topics": [
|
257
|
-
|
258
341
|
]
|
259
342
|
},
|
260
343
|
{
|
344
|
+
"uuid": "394755a3-c743-4b85-b9b8-387907f4e32d",
|
261
345
|
"slug": "pythagorean-triplet",
|
346
|
+
"core": false,
|
347
|
+
"unlocked_by": null,
|
262
348
|
"difficulty": 1,
|
263
349
|
"topics": [
|
264
|
-
|
265
350
|
]
|
266
351
|
},
|
267
352
|
{
|
353
|
+
"uuid": "5178ae53-5364-46c9-bee3-70e6e8a8c2e3",
|
268
354
|
"slug": "series",
|
355
|
+
"core": false,
|
356
|
+
"unlocked_by": null,
|
269
357
|
"difficulty": 1,
|
270
358
|
"topics": [
|
271
|
-
|
272
359
|
]
|
273
360
|
},
|
274
361
|
{
|
362
|
+
"uuid": "7dfa878c-83a6-48ef-9170-b6633d51d601",
|
275
363
|
"slug": "difference-of-squares",
|
364
|
+
"core": false,
|
365
|
+
"unlocked_by": null,
|
276
366
|
"difficulty": 1,
|
277
367
|
"topics": [
|
278
|
-
|
279
368
|
]
|
280
369
|
},
|
281
370
|
{
|
371
|
+
"uuid": "74bbc9e3-edc5-41e0-84d7-5b2d98dd8370",
|
282
372
|
"slug": "secret-handshake",
|
373
|
+
"core": false,
|
374
|
+
"unlocked_by": null,
|
283
375
|
"difficulty": 1,
|
284
376
|
"topics": [
|
285
|
-
|
286
377
|
]
|
287
378
|
},
|
288
379
|
{
|
380
|
+
"uuid": "ec60a578-8889-46a1-b7b8-306dbd8551d5",
|
289
381
|
"slug": "linked-list",
|
382
|
+
"core": false,
|
383
|
+
"unlocked_by": null,
|
290
384
|
"difficulty": 1,
|
291
385
|
"topics": [
|
292
|
-
|
293
386
|
]
|
294
387
|
},
|
295
388
|
{
|
389
|
+
"uuid": "9131bdb8-2e0f-4526-b113-8a77712e7216",
|
296
390
|
"slug": "wordy",
|
391
|
+
"core": false,
|
392
|
+
"unlocked_by": null,
|
297
393
|
"difficulty": 1,
|
298
394
|
"topics": [
|
299
|
-
|
300
395
|
]
|
301
396
|
},
|
302
397
|
{
|
398
|
+
"uuid": "1a6c4a3b-d5db-4a5a-b123-66cf085defe6",
|
303
399
|
"slug": "flatten-array",
|
400
|
+
"core": false,
|
401
|
+
"unlocked_by": null,
|
304
402
|
"difficulty": 5,
|
305
403
|
"topics": [
|
306
404
|
"Arrays",
|
@@ -308,28 +406,37 @@
|
|
308
406
|
]
|
309
407
|
},
|
310
408
|
{
|
409
|
+
"uuid": "1f84305d-ea76-4fe2-9858-3b53576d683d",
|
311
410
|
"slug": "largest-series-product",
|
411
|
+
"core": false,
|
412
|
+
"unlocked_by": null,
|
312
413
|
"difficulty": 1,
|
313
414
|
"topics": [
|
314
|
-
|
315
415
|
]
|
316
416
|
},
|
317
417
|
{
|
418
|
+
"uuid": "13444eff-005a-405e-9737-7b64d99c1a61",
|
318
419
|
"slug": "kindergarten-garden",
|
420
|
+
"core": false,
|
421
|
+
"unlocked_by": null,
|
319
422
|
"difficulty": 1,
|
320
423
|
"topics": [
|
321
|
-
|
322
424
|
]
|
323
425
|
},
|
324
426
|
{
|
427
|
+
"uuid": "7c569e5d-bb00-44b8-8adc-34253790c19b",
|
325
428
|
"slug": "binary-search",
|
429
|
+
"core": false,
|
430
|
+
"unlocked_by": null,
|
326
431
|
"difficulty": 1,
|
327
432
|
"topics": [
|
328
|
-
|
329
433
|
]
|
330
434
|
},
|
331
435
|
{
|
436
|
+
"uuid": "7d9db056-5398-41b6-af3b-9707f5eb0dbc",
|
332
437
|
"slug": "list-ops",
|
438
|
+
"core": false,
|
439
|
+
"unlocked_by": null,
|
333
440
|
"difficulty": 5,
|
334
441
|
"topics": [
|
335
442
|
"Data structures",
|
@@ -338,139 +445,182 @@
|
|
338
445
|
]
|
339
446
|
},
|
340
447
|
{
|
448
|
+
"uuid": "6c4b4e25-c115-4789-9058-d28ab6ca0d26",
|
341
449
|
"slug": "binary-search-tree",
|
450
|
+
"core": false,
|
451
|
+
"unlocked_by": null,
|
342
452
|
"difficulty": 1,
|
343
453
|
"topics": [
|
344
|
-
|
345
454
|
]
|
346
455
|
},
|
347
456
|
{
|
457
|
+
"uuid": "dd0b5e67-81f6-437e-8334-2ec0dfeb862a",
|
348
458
|
"slug": "matrix",
|
459
|
+
"core": false,
|
460
|
+
"unlocked_by": null,
|
349
461
|
"difficulty": 1,
|
350
462
|
"topics": [
|
351
|
-
|
352
463
|
]
|
353
464
|
},
|
354
465
|
{
|
466
|
+
"uuid": "5174bd15-eee2-4b53-b3ee-ca3a8c958a31",
|
355
467
|
"slug": "robot-simulator",
|
468
|
+
"core": false,
|
469
|
+
"unlocked_by": null,
|
356
470
|
"difficulty": 1,
|
357
471
|
"topics": [
|
358
|
-
|
359
472
|
]
|
360
473
|
},
|
361
474
|
{
|
475
|
+
"uuid": "7ce09989-f202-4c3c-8b7e-72cef18808c3",
|
362
476
|
"slug": "nth-prime",
|
477
|
+
"core": false,
|
478
|
+
"unlocked_by": null,
|
363
479
|
"difficulty": 1,
|
364
480
|
"topics": [
|
365
|
-
|
366
481
|
]
|
367
482
|
},
|
368
483
|
{
|
484
|
+
"uuid": "f6799d10-0210-4c73-ac08-d5cac1a00ff3",
|
369
485
|
"slug": "palindrome-products",
|
486
|
+
"core": false,
|
487
|
+
"unlocked_by": null,
|
370
488
|
"difficulty": 1,
|
371
489
|
"topics": [
|
372
|
-
|
373
490
|
]
|
374
491
|
},
|
375
492
|
{
|
493
|
+
"uuid": "99493160-4673-402f-acda-62db5378148d",
|
376
494
|
"slug": "pascals-triangle",
|
495
|
+
"core": false,
|
496
|
+
"unlocked_by": null,
|
377
497
|
"difficulty": 1,
|
378
498
|
"topics": [
|
379
|
-
|
380
499
|
]
|
381
500
|
},
|
382
501
|
{
|
502
|
+
"uuid": "12989bb3-c593-4f68-bea4-e2c5b76bc3c0",
|
383
503
|
"slug": "say",
|
504
|
+
"core": false,
|
505
|
+
"unlocked_by": null,
|
384
506
|
"difficulty": 1,
|
385
507
|
"topics": [
|
386
|
-
|
387
508
|
]
|
388
509
|
},
|
389
510
|
{
|
511
|
+
"uuid": "75199d72-4cac-49ce-bffb-23fb659c57ae",
|
390
512
|
"slug": "custom-set",
|
513
|
+
"core": false,
|
514
|
+
"unlocked_by": null,
|
391
515
|
"difficulty": 1,
|
392
516
|
"topics": [
|
393
|
-
|
394
517
|
]
|
395
518
|
},
|
396
519
|
{
|
520
|
+
"uuid": "f7452f71-795b-40b6-847c-67ef4bb9db45",
|
397
521
|
"slug": "sum-of-multiples",
|
522
|
+
"core": false,
|
523
|
+
"unlocked_by": null,
|
398
524
|
"difficulty": 1,
|
399
525
|
"topics": [
|
400
|
-
|
401
526
|
]
|
402
527
|
},
|
403
528
|
{
|
529
|
+
"uuid": "007a4cd4-7324-4512-8905-ead0c78146f7",
|
404
530
|
"slug": "queen-attack",
|
531
|
+
"core": false,
|
532
|
+
"unlocked_by": null,
|
405
533
|
"difficulty": 1,
|
406
534
|
"topics": [
|
407
|
-
|
408
535
|
]
|
409
536
|
},
|
410
537
|
{
|
538
|
+
"uuid": "a01aa48c-65c4-4b1f-b3d9-3ec7da2ef754",
|
411
539
|
"slug": "saddle-points",
|
540
|
+
"core": false,
|
541
|
+
"unlocked_by": null,
|
412
542
|
"difficulty": 1,
|
413
543
|
"topics": [
|
414
|
-
|
415
544
|
]
|
416
545
|
},
|
417
546
|
{
|
547
|
+
"uuid": "24c197ee-d492-4083-8615-629cb4b836b2",
|
418
548
|
"slug": "ocr-numbers",
|
549
|
+
"core": false,
|
550
|
+
"unlocked_by": null,
|
419
551
|
"difficulty": 1,
|
420
552
|
"topics": [
|
421
|
-
|
422
553
|
]
|
423
554
|
},
|
424
555
|
{
|
556
|
+
"uuid": "98617798-b49d-4d43-9f65-7131ee73d626",
|
425
557
|
"slug": "meetup",
|
558
|
+
"core": false,
|
559
|
+
"unlocked_by": null,
|
426
560
|
"difficulty": 1,
|
427
561
|
"topics": [
|
428
|
-
|
429
562
|
]
|
430
563
|
},
|
431
564
|
{
|
565
|
+
"uuid": "4d456646-3a9b-4393-9558-6b30e5c1039c",
|
432
566
|
"slug": "bracket-push",
|
567
|
+
"core": false,
|
568
|
+
"unlocked_by": null,
|
433
569
|
"difficulty": 1,
|
434
570
|
"topics": [
|
435
|
-
|
436
571
|
]
|
437
572
|
},
|
438
573
|
{
|
574
|
+
"uuid": "0bc6b478-40a8-47ab-889b-c403b922f7e5",
|
439
575
|
"slug": "two-bucket",
|
576
|
+
"core": false,
|
577
|
+
"unlocked_by": null,
|
440
578
|
"difficulty": 1,
|
441
579
|
"topics": [
|
442
|
-
|
443
580
|
]
|
444
581
|
},
|
445
582
|
{
|
583
|
+
"uuid": "6a1eee0e-f8d4-446d-9c52-f31c3700af1b",
|
446
584
|
"slug": "diamond",
|
585
|
+
"core": false,
|
586
|
+
"unlocked_by": null,
|
447
587
|
"difficulty": 1,
|
448
588
|
"topics": [
|
449
|
-
|
450
589
|
]
|
451
590
|
},
|
452
591
|
{
|
592
|
+
"uuid": "3df577af-2854-40ee-b211-9b608dbbad58",
|
453
593
|
"slug": "isogram",
|
594
|
+
"core": false,
|
595
|
+
"unlocked_by": null,
|
454
596
|
"difficulty": 1,
|
455
597
|
"topics": [
|
456
|
-
|
457
598
|
]
|
458
599
|
},
|
459
600
|
{
|
601
|
+
"uuid": "d2d3cd13-b06c-4c24-9964-fb1554f70dd4",
|
460
602
|
"slug": "all-your-base",
|
603
|
+
"core": false,
|
604
|
+
"unlocked_by": null,
|
461
605
|
"difficulty": 1,
|
462
606
|
"topics": [
|
463
|
-
|
464
607
|
]
|
465
608
|
},
|
466
609
|
{
|
610
|
+
"uuid": "2fa2c262-77ae-409b-bfd8-1d643faae772",
|
467
611
|
"slug": "connect",
|
612
|
+
"core": false,
|
613
|
+
"unlocked_by": null,
|
468
614
|
"difficulty": 7,
|
469
615
|
"topics": [
|
616
|
+
|
470
617
|
]
|
471
618
|
},
|
472
619
|
{
|
620
|
+
"uuid": "8bafe6c4-9154-4037-9070-7f57f91d495a",
|
473
621
|
"slug": "minesweeper",
|
622
|
+
"core": false,
|
623
|
+
"unlocked_by": null,
|
474
624
|
"difficulty": 7,
|
475
625
|
"topics": [
|
476
626
|
"games",
|
@@ -480,23 +630,37 @@
|
|
480
630
|
]
|
481
631
|
},
|
482
632
|
{
|
633
|
+
"uuid": "a602bd33-69fc-4b67-a3d3-95198853095e",
|
483
634
|
"slug": "alphametics",
|
635
|
+
"core": false,
|
636
|
+
"unlocked_by": null,
|
484
637
|
"difficulty": 7,
|
485
638
|
"topics": [
|
486
639
|
"games",
|
487
640
|
"algorithms"
|
488
641
|
]
|
642
|
+
},
|
643
|
+
{
|
644
|
+
"uuid": "0ba4d3b9-2519-49ac-bd93-f960aca6c11f",
|
645
|
+
"slug": "binary",
|
646
|
+
"deprecated": true
|
647
|
+
},
|
648
|
+
{
|
649
|
+
"uuid": "1acf1d2d-a25e-4576-94de-0470abc872d9",
|
650
|
+
"slug": "trinary",
|
651
|
+
"deprecated": true
|
652
|
+
},
|
653
|
+
{
|
654
|
+
"uuid": "8ed2c9fe-a13f-4313-abf9-125f351c85c9",
|
655
|
+
"slug": "hexadecimal",
|
656
|
+
"deprecated": true
|
657
|
+
},
|
658
|
+
{
|
659
|
+
"uuid": "dec66f89-39d0-4857-9679-a035cf4259d7",
|
660
|
+
"slug": "octal",
|
661
|
+
"deprecated": true
|
489
662
|
}
|
490
663
|
],
|
491
|
-
"deprecated": [
|
492
|
-
"nucleotide-count",
|
493
|
-
"point-mutations",
|
494
|
-
"binary",
|
495
|
-
"trinary",
|
496
|
-
"hexadecimal",
|
497
|
-
"octal"
|
498
|
-
],
|
499
664
|
"foregone": [
|
500
|
-
|
501
665
|
]
|
502
666
|
}
|