trackler 2.2.0.3 → 2.2.0.4
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/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
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Rna Transcription
|
|
2
|
+
|
|
3
|
+
Given a DNA strand, return its RNA complement (per RNA transcription).
|
|
4
|
+
|
|
5
|
+
Both DNA and RNA strands are a sequence of nucleotides.
|
|
6
|
+
|
|
7
|
+
The four nucleotides found in DNA are adenine (**A**), cytosine (**C**),
|
|
8
|
+
guanine (**G**) and thymine (**T**).
|
|
9
|
+
|
|
10
|
+
The four nucleotides found in RNA are adenine (**A**), cytosine (**C**),
|
|
11
|
+
guanine (**G**) and uracil (**U**).
|
|
12
|
+
|
|
13
|
+
Given a DNA strand, its transcribed RNA strand is formed by replacing
|
|
14
|
+
each nucleotide with its complement:
|
|
15
|
+
|
|
16
|
+
* `G` -> `C`
|
|
17
|
+
* `C` -> `G`
|
|
18
|
+
* `T` -> `A`
|
|
19
|
+
* `A` -> `U`
|
|
20
|
+
|
|
21
|
+
## Resources
|
|
22
|
+
|
|
23
|
+
Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
|
|
24
|
+
[resources](https://perl6.org/resources/) pages for information, tips, and
|
|
25
|
+
examples if you get stuck.
|
|
26
|
+
|
|
27
|
+
## Running the tests
|
|
28
|
+
|
|
29
|
+
There is a test script included with the exercise; a file with the extension
|
|
30
|
+
`.t`. You can run the test script for the exercise by executing the command
|
|
31
|
+
`prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
|
|
32
|
+
e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
|
|
33
|
+
tests marked as 'TODO'.
|
|
34
|
+
|
|
35
|
+
## Source
|
|
36
|
+
|
|
37
|
+
Rosalind [http://rosalind.info/problems/rna](http://rosalind.info/problems/rna)
|
|
38
|
+
|
|
39
|
+
## Submitting Incomplete Solutions
|
|
40
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Robot Name
|
|
2
|
+
|
|
3
|
+
Manage robot factory settings.
|
|
4
|
+
|
|
5
|
+
When robots come off the factory floor, they have no name.
|
|
6
|
+
|
|
7
|
+
The first time you boot them up, a random name is generated in the format
|
|
8
|
+
of two uppercase letters followed by three digits, such as RX837 or BC811.
|
|
9
|
+
|
|
10
|
+
Every once in a while we need to reset a robot to its factory settings,
|
|
11
|
+
which means that their name gets wiped. The next time you ask, it will
|
|
12
|
+
respond with a new random name.
|
|
13
|
+
|
|
14
|
+
The names must be random: they should not follow a predictable sequence.
|
|
15
|
+
Random names means a risk of collisions. Your solution must ensure that
|
|
16
|
+
every existing robot has a unique name.
|
|
17
|
+
|
|
18
|
+
## Resources
|
|
19
|
+
|
|
20
|
+
Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
|
|
21
|
+
[resources](https://perl6.org/resources/) pages for information, tips, and
|
|
22
|
+
examples if you get stuck.
|
|
23
|
+
|
|
24
|
+
## Running the tests
|
|
25
|
+
|
|
26
|
+
There is a test script included with the exercise; a file with the extension
|
|
27
|
+
`.t`. You can run the test script for the exercise by executing the command
|
|
28
|
+
`prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
|
|
29
|
+
e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
|
|
30
|
+
tests marked as 'TODO'.
|
|
31
|
+
|
|
32
|
+
## Source
|
|
33
|
+
|
|
34
|
+
A debugging session with Paul Blackwell at gSchool. [http://gschool.it](http://gschool.it)
|
|
35
|
+
|
|
36
|
+
## Submitting Incomplete Solutions
|
|
37
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Scrabble Score
|
|
2
|
+
|
|
3
|
+
Given a word, compute the scrabble score for that word.
|
|
4
|
+
|
|
5
|
+
## Letter Values
|
|
6
|
+
|
|
7
|
+
You'll need these:
|
|
8
|
+
|
|
9
|
+
```plain
|
|
10
|
+
Letter Value
|
|
11
|
+
A, E, I, O, U, L, N, R, S, T 1
|
|
12
|
+
D, G 2
|
|
13
|
+
B, C, M, P 3
|
|
14
|
+
F, H, V, W, Y 4
|
|
15
|
+
K 5
|
|
16
|
+
J, X 8
|
|
17
|
+
Q, Z 10
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
"cabbage" should be scored as worth 14 points:
|
|
22
|
+
|
|
23
|
+
- 3 points for C
|
|
24
|
+
- 1 point for A, twice
|
|
25
|
+
- 3 points for B, twice
|
|
26
|
+
- 2 points for G
|
|
27
|
+
- 1 point for E
|
|
28
|
+
|
|
29
|
+
And to total:
|
|
30
|
+
|
|
31
|
+
- `3 + 2*1 + 2*3 + 2 + 1`
|
|
32
|
+
- = `3 + 2 + 6 + 3`
|
|
33
|
+
- = `5 + 9`
|
|
34
|
+
- = 14
|
|
35
|
+
|
|
36
|
+
## Extensions
|
|
37
|
+
- You can play a double or a triple letter.
|
|
38
|
+
- You can play a double or a triple word.
|
|
39
|
+
|
|
40
|
+
## Resources
|
|
41
|
+
|
|
42
|
+
Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
|
|
43
|
+
[resources](https://perl6.org/resources/) pages for information, tips, and
|
|
44
|
+
examples if you get stuck.
|
|
45
|
+
|
|
46
|
+
## Running the tests
|
|
47
|
+
|
|
48
|
+
There is a test script included with the exercise; a file with the extension
|
|
49
|
+
`.t`. You can run the test script for the exercise by executing the command
|
|
50
|
+
`prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
|
|
51
|
+
e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
|
|
52
|
+
tests marked as 'TODO'.
|
|
53
|
+
|
|
54
|
+
## Source
|
|
55
|
+
|
|
56
|
+
Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
|
|
57
|
+
|
|
58
|
+
## Submitting Incomplete Solutions
|
|
59
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Space Age
|
|
2
|
+
|
|
3
|
+
Given an age in seconds, calculate how old someone would be on:
|
|
4
|
+
|
|
5
|
+
- Earth: orbital period 365.25 Earth days, or 31557600 seconds
|
|
6
|
+
- Mercury: orbital period 0.2408467 Earth years
|
|
7
|
+
- Venus: orbital period 0.61519726 Earth years
|
|
8
|
+
- Mars: orbital period 1.8808158 Earth years
|
|
9
|
+
- Jupiter: orbital period 11.862615 Earth years
|
|
10
|
+
- Saturn: orbital period 29.447498 Earth years
|
|
11
|
+
- Uranus: orbital period 84.016846 Earth years
|
|
12
|
+
- Neptune: orbital period 164.79132 Earth years
|
|
13
|
+
|
|
14
|
+
So if you were told someone were 1,000,000,000 seconds old, you should
|
|
15
|
+
be able to say that they're 31 Earth-years old.
|
|
16
|
+
|
|
17
|
+
If you're wondering why Pluto didn't make the cut, go watch [this
|
|
18
|
+
youtube video](http://www.youtube.com/watch?v=Z_2gbGXzFbs).
|
|
19
|
+
|
|
20
|
+
## Resources
|
|
21
|
+
|
|
22
|
+
Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
|
|
23
|
+
[resources](https://perl6.org/resources/) pages for information, tips, and
|
|
24
|
+
examples if you get stuck.
|
|
25
|
+
|
|
26
|
+
## Running the tests
|
|
27
|
+
|
|
28
|
+
There is a test script included with the exercise; a file with the extension
|
|
29
|
+
`.t`. You can run the test script for the exercise by executing the command
|
|
30
|
+
`prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
|
|
31
|
+
e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
|
|
32
|
+
tests marked as 'TODO'.
|
|
33
|
+
|
|
34
|
+
## Source
|
|
35
|
+
|
|
36
|
+
Partially inspired by Chapter 1 in Chris Pine's online Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=01](http://pine.fm/LearnToProgram/?Chapter=01)
|
|
37
|
+
|
|
38
|
+
## Submitting Incomplete Solutions
|
|
39
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Trinary
|
|
2
|
+
|
|
3
|
+
Convert a trinary number, represented as a string (e.g. '102012'), to its
|
|
4
|
+
decimal equivalent using first principles.
|
|
5
|
+
|
|
6
|
+
The program should consider strings specifying an invalid trinary as the
|
|
7
|
+
value 0.
|
|
8
|
+
|
|
9
|
+
Trinary numbers contain three symbols: 0, 1, and 2.
|
|
10
|
+
|
|
11
|
+
The last place in a trinary number is the 1's place. The second to last
|
|
12
|
+
is the 3's place, the third to last is the 9's place, etc.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# "102012"
|
|
16
|
+
1 0 2 0 1 2 # the number
|
|
17
|
+
1*3^5 + 0*3^4 + 2*3^3 + 0*3^2 + 1*3^1 + 2*3^0 # the value
|
|
18
|
+
243 + 0 + 54 + 0 + 3 + 2 = 302
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If your language provides a method in the standard library to perform the
|
|
22
|
+
conversion, pretend it doesn't exist and implement it yourself.
|
|
23
|
+
|
|
24
|
+
## Resources
|
|
25
|
+
|
|
26
|
+
Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
|
|
27
|
+
[resources](https://perl6.org/resources/) pages for information, tips, and
|
|
28
|
+
examples if you get stuck.
|
|
29
|
+
|
|
30
|
+
## Running the tests
|
|
31
|
+
|
|
32
|
+
There is a test script included with the exercise; a file with the extension
|
|
33
|
+
`.t`. You can run the test script for the exercise by executing the command
|
|
34
|
+
`prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
|
|
35
|
+
e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
|
|
36
|
+
tests marked as 'TODO'.
|
|
37
|
+
|
|
38
|
+
## Source
|
|
39
|
+
|
|
40
|
+
All of Computer Science [http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-](http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-)
|
|
41
|
+
|
|
42
|
+
## Submitting Incomplete Solutions
|
|
43
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Word Count
|
|
2
|
+
|
|
3
|
+
Given a phrase, count the occurrences of each word in that phrase.
|
|
4
|
+
|
|
5
|
+
For example for the input `"olly olly in come free"`
|
|
6
|
+
|
|
7
|
+
```plain
|
|
8
|
+
olly: 2
|
|
9
|
+
in: 1
|
|
10
|
+
come: 1
|
|
11
|
+
free: 1
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Resources
|
|
16
|
+
|
|
17
|
+
Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
|
|
18
|
+
[resources](https://perl6.org/resources/) pages for information, tips, and
|
|
19
|
+
examples if you get stuck.
|
|
20
|
+
|
|
21
|
+
## Running the tests
|
|
22
|
+
|
|
23
|
+
There is a test script included with the exercise; a file with the extension
|
|
24
|
+
`.t`. You can run the test script for the exercise by executing the command
|
|
25
|
+
`prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
|
|
26
|
+
e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
|
|
27
|
+
tests marked as 'TODO'.
|
|
28
|
+
|
|
29
|
+
## Source
|
|
30
|
+
|
|
31
|
+
This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour.
|
|
32
|
+
|
|
33
|
+
## Submitting Incomplete Solutions
|
|
34
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Wordy
|
|
2
|
+
|
|
3
|
+
Parse and evaluate simple math word problems returning the answer as an integer.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Iteration 1 — Addition
|
|
7
|
+
|
|
8
|
+
Add two numbers together.
|
|
9
|
+
|
|
10
|
+
> What is 5 plus 13?
|
|
11
|
+
|
|
12
|
+
Evaluates to 18.
|
|
13
|
+
|
|
14
|
+
Handle large numbers and negative numbers.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## Iteration 2 — Subtraction, Multiplication and Division
|
|
18
|
+
|
|
19
|
+
Now, perform the other three operations.
|
|
20
|
+
|
|
21
|
+
> What is 7 minus 5?
|
|
22
|
+
|
|
23
|
+
2
|
|
24
|
+
|
|
25
|
+
> What is 6 multiplied by 4?
|
|
26
|
+
|
|
27
|
+
24
|
|
28
|
+
|
|
29
|
+
> What is 25 divided by 5?
|
|
30
|
+
|
|
31
|
+
5
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Iteration 3 — Multiple Operations
|
|
35
|
+
|
|
36
|
+
Handle a set of operations, in sequence.
|
|
37
|
+
|
|
38
|
+
Since these are verbal word problems, evaluate the expression from
|
|
39
|
+
left-to-right, _ignoring the typical order of operations._
|
|
40
|
+
|
|
41
|
+
> What is 5 plus 13 plus 6?
|
|
42
|
+
|
|
43
|
+
24
|
|
44
|
+
|
|
45
|
+
> What is 3 plus 2 multiplied by 3?
|
|
46
|
+
|
|
47
|
+
15 (i.e. not 9)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## Bonus — Exponentials
|
|
51
|
+
|
|
52
|
+
If you'd like, handle exponentials.
|
|
53
|
+
|
|
54
|
+
> What is 2 raised to the 5th power?
|
|
55
|
+
|
|
56
|
+
32
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
## Resources
|
|
60
|
+
|
|
61
|
+
Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
|
|
62
|
+
[resources](https://perl6.org/resources/) pages for information, tips, and
|
|
63
|
+
examples if you get stuck.
|
|
64
|
+
|
|
65
|
+
## Running the tests
|
|
66
|
+
|
|
67
|
+
There is a test script included with the exercise; a file with the extension
|
|
68
|
+
`.t`. You can run the test script for the exercise by executing the command
|
|
69
|
+
`prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
|
|
70
|
+
e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
|
|
71
|
+
tests marked as 'TODO'.
|
|
72
|
+
|
|
73
|
+
## Source
|
|
74
|
+
|
|
75
|
+
Inspired by one of the generated questions in the Extreme Startup game. [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
|
|
76
|
+
|
|
77
|
+
## Submitting Incomplete Solutions
|
|
78
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
data/tracks/php/config.json
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
"language": "PHP",
|
|
4
4
|
"repository": "https://github.com/exercism/php",
|
|
5
5
|
"active": true,
|
|
6
|
-
"deprecated": [
|
|
7
|
-
|
|
8
|
-
],
|
|
9
6
|
"foregone": [
|
|
10
7
|
|
|
11
8
|
],
|
|
12
9
|
"exercises": [
|
|
13
10
|
{
|
|
11
|
+
"uuid": "56116aa6-e3d1-4122-a394-a7e0f6ab6fea",
|
|
14
12
|
"slug": "hello-world",
|
|
13
|
+
"core": false,
|
|
14
|
+
"unlocked_by": null,
|
|
15
15
|
"difficulty": 1,
|
|
16
16
|
"topics": [
|
|
17
17
|
"Text formatting",
|
|
@@ -19,7 +19,10 @@
|
|
|
19
19
|
]
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
+
"uuid": "48de430b-0d88-4af0-ab48-d00b840312bb",
|
|
22
23
|
"slug": "hamming",
|
|
24
|
+
"core": false,
|
|
25
|
+
"unlocked_by": null,
|
|
23
26
|
"difficulty": 2,
|
|
24
27
|
"topics": [
|
|
25
28
|
"Strings",
|
|
@@ -27,14 +30,20 @@
|
|
|
27
30
|
]
|
|
28
31
|
},
|
|
29
32
|
{
|
|
33
|
+
"uuid": "81aa4bc9-4936-46c2-bb2f-433246a86c5d",
|
|
30
34
|
"slug": "gigasecond",
|
|
35
|
+
"core": false,
|
|
36
|
+
"unlocked_by": null,
|
|
31
37
|
"difficulty": 2,
|
|
32
38
|
"topics": [
|
|
33
39
|
"Dates"
|
|
34
40
|
]
|
|
35
41
|
},
|
|
36
42
|
{
|
|
43
|
+
"uuid": "ae91650f-fe06-466a-a40a-6a24f5926fbe",
|
|
37
44
|
"slug": "bob",
|
|
45
|
+
"core": false,
|
|
46
|
+
"unlocked_by": null,
|
|
38
47
|
"difficulty": 4,
|
|
39
48
|
"topics": [
|
|
40
49
|
"Strings",
|
|
@@ -42,14 +51,20 @@
|
|
|
42
51
|
]
|
|
43
52
|
},
|
|
44
53
|
{
|
|
54
|
+
"uuid": "4f15fc17-f68e-43bc-9417-403dd6d03f4f",
|
|
45
55
|
"slug": "pangram",
|
|
56
|
+
"core": false,
|
|
57
|
+
"unlocked_by": null,
|
|
46
58
|
"difficulty": 4,
|
|
47
59
|
"topics": [
|
|
48
60
|
"Strings"
|
|
49
61
|
]
|
|
50
62
|
},
|
|
51
63
|
{
|
|
64
|
+
"uuid": "81d96250-f2e4-4228-a8e9-254b6b8784ac",
|
|
52
65
|
"slug": "rna-transcription",
|
|
66
|
+
"core": false,
|
|
67
|
+
"unlocked_by": null,
|
|
53
68
|
"difficulty": 3,
|
|
54
69
|
"topics": [
|
|
55
70
|
"Strings",
|
|
@@ -57,7 +72,10 @@
|
|
|
57
72
|
]
|
|
58
73
|
},
|
|
59
74
|
{
|
|
75
|
+
"uuid": "0ad53d66-cbdc-4d9a-a083-d24af216d3d9",
|
|
60
76
|
"slug": "raindrops",
|
|
77
|
+
"core": false,
|
|
78
|
+
"unlocked_by": null,
|
|
61
79
|
"difficulty": 6,
|
|
62
80
|
"topics": [
|
|
63
81
|
"Text formatting",
|
|
@@ -65,7 +83,10 @@
|
|
|
65
83
|
]
|
|
66
84
|
},
|
|
67
85
|
{
|
|
86
|
+
"uuid": "435f0ec1-f53c-4fe4-b92b-43a582c2fa82",
|
|
68
87
|
"slug": "isogram",
|
|
88
|
+
"core": false,
|
|
89
|
+
"unlocked_by": null,
|
|
69
90
|
"difficulty": 4,
|
|
70
91
|
"topics": [
|
|
71
92
|
"Strings",
|
|
@@ -73,14 +94,20 @@
|
|
|
73
94
|
]
|
|
74
95
|
},
|
|
75
96
|
{
|
|
97
|
+
"uuid": "238d86fe-6e29-43b0-9e27-a54caa773618",
|
|
76
98
|
"slug": "difference-of-squares",
|
|
99
|
+
"core": false,
|
|
100
|
+
"unlocked_by": null,
|
|
77
101
|
"difficulty": 2,
|
|
78
102
|
"topics": [
|
|
79
103
|
"Integers"
|
|
80
104
|
]
|
|
81
105
|
},
|
|
82
106
|
{
|
|
107
|
+
"uuid": "4fbeb249-dc1d-4282-8455-d1c06a7cb420",
|
|
83
108
|
"slug": "largest-series-product",
|
|
109
|
+
"core": false,
|
|
110
|
+
"unlocked_by": null,
|
|
84
111
|
"difficulty": 5,
|
|
85
112
|
"topics": [
|
|
86
113
|
"Strings",
|
|
@@ -89,7 +116,10 @@
|
|
|
89
116
|
]
|
|
90
117
|
},
|
|
91
118
|
{
|
|
119
|
+
"uuid": "210e1252-f92a-44b9-9916-8b27633fee0c",
|
|
92
120
|
"slug": "roman-numerals",
|
|
121
|
+
"core": false,
|
|
122
|
+
"unlocked_by": null,
|
|
93
123
|
"difficulty": 4,
|
|
94
124
|
"topics": [
|
|
95
125
|
"Control-flow (loops)",
|
|
@@ -97,7 +127,10 @@
|
|
|
97
127
|
]
|
|
98
128
|
},
|
|
99
129
|
{
|
|
130
|
+
"uuid": "07258892-c06f-4833-97f6-56ead8ca113d",
|
|
100
131
|
"slug": "sieve",
|
|
132
|
+
"core": false,
|
|
133
|
+
"unlocked_by": null,
|
|
101
134
|
"difficulty": 1,
|
|
102
135
|
"topics": [
|
|
103
136
|
"Filtering",
|
|
@@ -105,7 +138,10 @@
|
|
|
105
138
|
]
|
|
106
139
|
},
|
|
107
140
|
{
|
|
141
|
+
"uuid": "af8f9ed1-1351-430b-a9dd-bdd2ba4e9a82",
|
|
108
142
|
"slug": "pig-latin",
|
|
143
|
+
"core": false,
|
|
144
|
+
"unlocked_by": null,
|
|
109
145
|
"difficulty": 4,
|
|
110
146
|
"topics": [
|
|
111
147
|
"Strings",
|
|
@@ -113,7 +149,10 @@
|
|
|
113
149
|
]
|
|
114
150
|
},
|
|
115
151
|
{
|
|
152
|
+
"uuid": "b24d5f98-8d62-4177-b0ae-306bbf0f918b",
|
|
116
153
|
"slug": "robot-name",
|
|
154
|
+
"core": false,
|
|
155
|
+
"unlocked_by": null,
|
|
117
156
|
"difficulty": 3,
|
|
118
157
|
"topics": [
|
|
119
158
|
"Randomness",
|
|
@@ -122,14 +161,20 @@
|
|
|
122
161
|
]
|
|
123
162
|
},
|
|
124
163
|
{
|
|
164
|
+
"uuid": "f2330729-2ddc-4a9b-b364-51f1197f69ff",
|
|
125
165
|
"slug": "leap",
|
|
166
|
+
"core": false,
|
|
167
|
+
"unlocked_by": null,
|
|
126
168
|
"difficulty": 1,
|
|
127
169
|
"topics": [
|
|
128
170
|
"Integers"
|
|
129
171
|
]
|
|
130
172
|
},
|
|
131
173
|
{
|
|
174
|
+
"uuid": "6670ef4d-c838-4a9d-8de6-42f31555eec7",
|
|
132
175
|
"slug": "word-count",
|
|
176
|
+
"core": false,
|
|
177
|
+
"unlocked_by": null,
|
|
133
178
|
"difficulty": 1,
|
|
134
179
|
"topics": [
|
|
135
180
|
"Strings",
|
|
@@ -138,7 +183,10 @@
|
|
|
138
183
|
]
|
|
139
184
|
},
|
|
140
185
|
{
|
|
186
|
+
"uuid": "d8485927-3aef-4e5a-a8b1-9b81c6c5aa26",
|
|
141
187
|
"slug": "anagram",
|
|
188
|
+
"core": false,
|
|
189
|
+
"unlocked_by": null,
|
|
142
190
|
"difficulty": 1,
|
|
143
191
|
"topics": [
|
|
144
192
|
"Strings",
|
|
@@ -146,14 +194,20 @@
|
|
|
146
194
|
]
|
|
147
195
|
},
|
|
148
196
|
{
|
|
197
|
+
"uuid": "ec96bb00-b61e-4881-af0d-445d07afeb6e",
|
|
149
198
|
"slug": "trinary",
|
|
199
|
+
"core": false,
|
|
200
|
+
"unlocked_by": null,
|
|
150
201
|
"difficulty": 1,
|
|
151
202
|
"topics": [
|
|
152
203
|
|
|
153
204
|
]
|
|
154
205
|
},
|
|
155
206
|
{
|
|
207
|
+
"uuid": "54df08ec-4a04-40f3-b974-e59de425ec80",
|
|
156
208
|
"slug": "bowling",
|
|
209
|
+
"core": false,
|
|
210
|
+
"unlocked_by": null,
|
|
157
211
|
"difficulty": 1,
|
|
158
212
|
"topics": [
|
|
159
213
|
"Algorithms",
|
|
@@ -161,7 +215,10 @@
|
|
|
161
215
|
]
|
|
162
216
|
},
|
|
163
217
|
{
|
|
218
|
+
"uuid": "682d4bab-ca03-4402-971b-ab2a09e55444",
|
|
164
219
|
"slug": "clock",
|
|
220
|
+
"core": false,
|
|
221
|
+
"unlocked_by": null,
|
|
165
222
|
"difficulty": 1,
|
|
166
223
|
"topics": [
|
|
167
224
|
"Time",
|
|
@@ -169,7 +226,10 @@
|
|
|
169
226
|
]
|
|
170
227
|
},
|
|
171
228
|
{
|
|
229
|
+
"uuid": "85408bdd-3c22-4b5a-9c61-044ddfb0c3ac",
|
|
172
230
|
"slug": "wordy",
|
|
231
|
+
"core": false,
|
|
232
|
+
"unlocked_by": null,
|
|
173
233
|
"difficulty": 1,
|
|
174
234
|
"topics": [
|
|
175
235
|
"Parsing",
|
|
@@ -178,14 +238,20 @@
|
|
|
178
238
|
]
|
|
179
239
|
},
|
|
180
240
|
{
|
|
241
|
+
"uuid": "774595ef-84e8-44f8-baaa-88bccf38d4d2",
|
|
181
242
|
"slug": "connect",
|
|
243
|
+
"core": false,
|
|
244
|
+
"unlocked_by": null,
|
|
182
245
|
"difficulty": 1,
|
|
183
246
|
"topics": [
|
|
184
247
|
|
|
185
248
|
]
|
|
186
249
|
},
|
|
187
250
|
{
|
|
251
|
+
"uuid": "96e47e5b-ab4f-472d-b56f-9ddcb3994320",
|
|
188
252
|
"slug": "minesweeper",
|
|
253
|
+
"core": false,
|
|
254
|
+
"unlocked_by": null,
|
|
189
255
|
"difficulty": 1,
|
|
190
256
|
"topics": [
|
|
191
257
|
"Parsing",
|
|
@@ -193,7 +259,10 @@
|
|
|
193
259
|
]
|
|
194
260
|
},
|
|
195
261
|
{
|
|
262
|
+
"uuid": "4f707562-2e46-475e-8e0b-1058416a7256",
|
|
196
263
|
"slug": "change",
|
|
264
|
+
"core": false,
|
|
265
|
+
"unlocked_by": null,
|
|
197
266
|
"difficulty": 1,
|
|
198
267
|
"topics": [
|
|
199
268
|
"Integers",
|
|
@@ -201,7 +270,10 @@
|
|
|
201
270
|
]
|
|
202
271
|
},
|
|
203
272
|
{
|
|
273
|
+
"uuid": "d761002c-1a60-4be8-9593-a17981c3b06d",
|
|
204
274
|
"slug": "phone-number",
|
|
275
|
+
"core": false,
|
|
276
|
+
"unlocked_by": null,
|
|
205
277
|
"difficulty": 1,
|
|
206
278
|
"topics": [
|
|
207
279
|
"Parsing",
|
|
@@ -209,7 +281,10 @@
|
|
|
209
281
|
]
|
|
210
282
|
},
|
|
211
283
|
{
|
|
284
|
+
"uuid": "edaafcf7-74cd-4d21-8b07-f357596bca37",
|
|
212
285
|
"slug": "beer-song",
|
|
286
|
+
"core": false,
|
|
287
|
+
"unlocked_by": null,
|
|
213
288
|
"difficulty": 1,
|
|
214
289
|
"topics": [
|
|
215
290
|
"Text formatting",
|
|
@@ -217,7 +292,10 @@
|
|
|
217
292
|
]
|
|
218
293
|
},
|
|
219
294
|
{
|
|
295
|
+
"uuid": "79acfce3-fdce-45b4-9d87-bf5caf4825ab",
|
|
220
296
|
"slug": "atbash-cipher",
|
|
297
|
+
"core": false,
|
|
298
|
+
"unlocked_by": null,
|
|
221
299
|
"difficulty": 1,
|
|
222
300
|
"topics": [
|
|
223
301
|
"Strings",
|
|
@@ -226,7 +304,10 @@
|
|
|
226
304
|
]
|
|
227
305
|
},
|
|
228
306
|
{
|
|
307
|
+
"uuid": "15ea518d-6c35-442a-9150-86da2d865703",
|
|
229
308
|
"slug": "bracket-push",
|
|
309
|
+
"core": false,
|
|
310
|
+
"unlocked_by": null,
|
|
230
311
|
"difficulty": 1,
|
|
231
312
|
"topics": [
|
|
232
313
|
"Parsing",
|
|
@@ -234,14 +315,20 @@
|
|
|
234
315
|
]
|
|
235
316
|
},
|
|
236
317
|
{
|
|
318
|
+
"uuid": "8a355fd3-b627-49fe-a0b6-58818b9bd8ea",
|
|
237
319
|
"slug": "binary",
|
|
320
|
+
"core": false,
|
|
321
|
+
"unlocked_by": null,
|
|
238
322
|
"difficulty": 1,
|
|
239
323
|
"topics": [
|
|
240
324
|
|
|
241
325
|
]
|
|
242
326
|
},
|
|
243
327
|
{
|
|
328
|
+
"uuid": "87edd481-d099-46b8-9137-22bf8f817e42",
|
|
244
329
|
"slug": "accumulate",
|
|
330
|
+
"core": false,
|
|
331
|
+
"unlocked_by": null,
|
|
245
332
|
"difficulty": 1,
|
|
246
333
|
"topics": [
|
|
247
334
|
"Extension methods",
|
|
@@ -250,7 +337,10 @@
|
|
|
250
337
|
]
|
|
251
338
|
},
|
|
252
339
|
{
|
|
340
|
+
"uuid": "63e62154-1e3d-4a54-9489-1197741fcf1c",
|
|
253
341
|
"slug": "variable-length-quantity",
|
|
342
|
+
"core": false,
|
|
343
|
+
"unlocked_by": null,
|
|
254
344
|
"difficulty": 1,
|
|
255
345
|
"topics": [
|
|
256
346
|
"Bitwise operations",
|
|
@@ -258,7 +348,10 @@
|
|
|
258
348
|
]
|
|
259
349
|
},
|
|
260
350
|
{
|
|
351
|
+
"uuid": "d2fe4844-1dfa-4959-840b-1f1818203d2f",
|
|
261
352
|
"slug": "acronym",
|
|
353
|
+
"core": false,
|
|
354
|
+
"unlocked_by": null,
|
|
262
355
|
"difficulty": 1,
|
|
263
356
|
"topics": [
|
|
264
357
|
"Strings",
|
|
@@ -266,7 +359,10 @@
|
|
|
266
359
|
]
|
|
267
360
|
},
|
|
268
361
|
{
|
|
362
|
+
"uuid": "5b1c032e-4f8c-4161-a601-4a67550b710d",
|
|
269
363
|
"slug": "nucleotide-count",
|
|
364
|
+
"core": false,
|
|
365
|
+
"unlocked_by": null,
|
|
270
366
|
"difficulty": 1,
|
|
271
367
|
"topics": [
|
|
272
368
|
"Dictionaries",
|
|
@@ -274,7 +370,10 @@
|
|
|
274
370
|
]
|
|
275
371
|
},
|
|
276
372
|
{
|
|
373
|
+
"uuid": "75763125-adb8-4ab3-9630-4e5a85c6ae35",
|
|
277
374
|
"slug": "triangle",
|
|
375
|
+
"core": false,
|
|
376
|
+
"unlocked_by": null,
|
|
278
377
|
"difficulty": 1,
|
|
279
378
|
"topics": [
|
|
280
379
|
"Integers",
|
|
@@ -282,7 +381,10 @@
|
|
|
282
381
|
]
|
|
283
382
|
},
|
|
284
383
|
{
|
|
384
|
+
"uuid": "58463b64-9c22-4813-893d-38d11fc8d9a5",
|
|
285
385
|
"slug": "etl",
|
|
386
|
+
"core": false,
|
|
387
|
+
"unlocked_by": null,
|
|
286
388
|
"difficulty": 1,
|
|
287
389
|
"topics": [
|
|
288
390
|
"Dictionaries",
|
|
@@ -291,14 +393,20 @@
|
|
|
291
393
|
]
|
|
292
394
|
},
|
|
293
395
|
{
|
|
396
|
+
"uuid": "334ba0ec-2c7b-4c92-ac43-e4777aa46d9c",
|
|
294
397
|
"slug": "space-age",
|
|
398
|
+
"core": false,
|
|
399
|
+
"unlocked_by": null,
|
|
295
400
|
"difficulty": 1,
|
|
296
401
|
"topics": [
|
|
297
402
|
"Floating-point numbers"
|
|
298
403
|
]
|
|
299
404
|
},
|
|
300
405
|
{
|
|
406
|
+
"uuid": "a1f27a8b-fd10-4479-85ae-48221eb30f9b",
|
|
301
407
|
"slug": "allergies",
|
|
408
|
+
"core": false,
|
|
409
|
+
"unlocked_by": null,
|
|
302
410
|
"difficulty": 3,
|
|
303
411
|
"topics": [
|
|
304
412
|
"Bitwise operations",
|
|
@@ -306,14 +414,20 @@
|
|
|
306
414
|
]
|
|
307
415
|
},
|
|
308
416
|
{
|
|
417
|
+
"uuid": "5022e334-9746-48ad-9e52-3887da35c06a",
|
|
309
418
|
"slug": "markdown",
|
|
419
|
+
"core": false,
|
|
420
|
+
"unlocked_by": null,
|
|
310
421
|
"difficulty": 3,
|
|
311
422
|
"topics": [
|
|
312
423
|
"refactoring"
|
|
313
424
|
]
|
|
314
425
|
},
|
|
315
426
|
{
|
|
427
|
+
"uuid": "3b001897-4052-4dab-84fd-b971a9946e0a",
|
|
316
428
|
"slug": "grains",
|
|
429
|
+
"core": false,
|
|
430
|
+
"unlocked_by": null,
|
|
317
431
|
"difficulty": 3,
|
|
318
432
|
"topics": [
|
|
319
433
|
"Floating-point numbers",
|
|
@@ -321,14 +435,20 @@
|
|
|
321
435
|
]
|
|
322
436
|
},
|
|
323
437
|
{
|
|
438
|
+
"uuid": "cc6c3b27-b719-454c-a743-7bc73bd47cf1",
|
|
324
439
|
"slug": "robot-simulator",
|
|
440
|
+
"core": false,
|
|
441
|
+
"unlocked_by": null,
|
|
325
442
|
"difficulty": 3,
|
|
326
443
|
"topics": [
|
|
327
444
|
"OOP"
|
|
328
445
|
]
|
|
329
446
|
},
|
|
330
447
|
{
|
|
448
|
+
"uuid": "a7a269a5-e99c-4fcf-b331-9a130e94f9e4",
|
|
331
449
|
"slug": "ocr-numbers",
|
|
450
|
+
"core": false,
|
|
451
|
+
"unlocked_by": null,
|
|
332
452
|
"difficulty": 3,
|
|
333
453
|
"topics": [
|
|
334
454
|
"Strings",
|
|
@@ -337,14 +457,20 @@
|
|
|
337
457
|
]
|
|
338
458
|
},
|
|
339
459
|
{
|
|
460
|
+
"uuid": "76313ca4-d2b1-45a0-becb-58b5524e98f8",
|
|
340
461
|
"slug": "book-store",
|
|
462
|
+
"core": false,
|
|
463
|
+
"unlocked_by": null,
|
|
341
464
|
"difficulty": 3,
|
|
342
465
|
"topics": [
|
|
343
466
|
"Algorithms"
|
|
344
467
|
]
|
|
345
468
|
},
|
|
346
469
|
{
|
|
470
|
+
"uuid": "94ceeb58-55c0-48b5-8a7c-d274f60b9010",
|
|
347
471
|
"slug": "queen-attack",
|
|
472
|
+
"core": false,
|
|
473
|
+
"unlocked_by": null,
|
|
348
474
|
"difficulty": 2,
|
|
349
475
|
"topics": [
|
|
350
476
|
"Integers",
|
|
@@ -352,7 +478,10 @@
|
|
|
352
478
|
]
|
|
353
479
|
},
|
|
354
480
|
{
|
|
481
|
+
"uuid": "3c5f3e65-c594-49c2-84e6-3bd3905d7ea3",
|
|
355
482
|
"slug": "scrabble-score",
|
|
483
|
+
"core": false,
|
|
484
|
+
"unlocked_by": null,
|
|
356
485
|
"difficulty": 2,
|
|
357
486
|
"topics": [
|
|
358
487
|
"Strings",
|
|
@@ -361,56 +490,80 @@
|
|
|
361
490
|
]
|
|
362
491
|
},
|
|
363
492
|
{
|
|
493
|
+
"uuid": "2d2974e2-2d5e-41d9-8dc3-951967631b37",
|
|
364
494
|
"slug": "grade-school",
|
|
495
|
+
"core": false,
|
|
496
|
+
"unlocked_by": null,
|
|
365
497
|
"difficulty": 6,
|
|
366
498
|
"topics": [
|
|
367
499
|
"Arrays"
|
|
368
500
|
]
|
|
369
501
|
},
|
|
370
502
|
{
|
|
503
|
+
"uuid": "1b034dc9-be9a-4434-bc78-57742f63107e",
|
|
371
504
|
"slug": "luhn",
|
|
505
|
+
"core": false,
|
|
506
|
+
"unlocked_by": null,
|
|
372
507
|
"difficulty": 4,
|
|
373
508
|
"topics": [
|
|
374
509
|
|
|
375
510
|
]
|
|
376
511
|
},
|
|
377
512
|
{
|
|
513
|
+
"uuid": "08639413-1e95-45e5-a8e2-071f3bf590c4",
|
|
378
514
|
"slug": "perfect-numbers",
|
|
515
|
+
"core": false,
|
|
516
|
+
"unlocked_by": null,
|
|
379
517
|
"difficulty": 1,
|
|
380
518
|
"topics": [
|
|
381
519
|
|
|
382
520
|
]
|
|
383
521
|
},
|
|
384
522
|
{
|
|
523
|
+
"uuid": "1b44cb35-28ba-416b-8f45-d168d300f9b4",
|
|
385
524
|
"slug": "sum-of-multiples",
|
|
525
|
+
"core": false,
|
|
526
|
+
"unlocked_by": null,
|
|
386
527
|
"difficulty": 2,
|
|
387
528
|
"topics": [
|
|
388
529
|
|
|
389
530
|
]
|
|
390
531
|
},
|
|
391
532
|
{
|
|
533
|
+
"uuid": "a2c918c0-6caa-4c15-a622-e093f3bacba3",
|
|
392
534
|
"slug": "pascals-triangle",
|
|
535
|
+
"core": false,
|
|
536
|
+
"unlocked_by": null,
|
|
393
537
|
"difficulty": 3,
|
|
394
538
|
"topics": [
|
|
395
539
|
|
|
396
540
|
]
|
|
397
541
|
},
|
|
398
542
|
{
|
|
543
|
+
"uuid": "29a3bb8c-298a-4976-8274-c69ec7a0058a",
|
|
399
544
|
"slug": "nth-prime",
|
|
545
|
+
"core": false,
|
|
546
|
+
"unlocked_by": null,
|
|
400
547
|
"difficulty": 3,
|
|
401
548
|
"topics": [
|
|
402
549
|
|
|
403
550
|
]
|
|
404
551
|
},
|
|
405
552
|
{
|
|
553
|
+
"uuid": "44867ac1-6aad-439a-a861-9acd3b619f19",
|
|
406
554
|
"slug": "binary-search",
|
|
555
|
+
"core": false,
|
|
556
|
+
"unlocked_by": null,
|
|
407
557
|
"difficulty": 3,
|
|
408
558
|
"topics": [
|
|
409
559
|
|
|
410
560
|
]
|
|
411
561
|
},
|
|
412
562
|
{
|
|
563
|
+
"uuid": "96de0479-9438-4c74-b57c-67c7073be262",
|
|
413
564
|
"slug": "prime-factors",
|
|
565
|
+
"core": false,
|
|
566
|
+
"unlocked_by": null,
|
|
414
567
|
"difficulty": 3,
|
|
415
568
|
"topics": [
|
|
416
569
|
|