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
@@ -0,0 +1,34 @@
|
|
1
|
+
# Difference Of Squares
|
2
|
+
|
3
|
+
Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
|
4
|
+
|
5
|
+
The square of the sum of the first ten natural numbers is
|
6
|
+
(1 + 2 + ... + 10)² = 55² = 3025.
|
7
|
+
|
8
|
+
The sum of the squares of the first ten natural numbers is
|
9
|
+
1² + 2² + ... + 10² = 385.
|
10
|
+
|
11
|
+
Hence the difference between the square of the sum of the first
|
12
|
+
ten natural numbers and the sum of the squares of the first ten
|
13
|
+
natural numbers is 3025 - 385 = 2640.
|
14
|
+
|
15
|
+
## Making the Test Suite Pass
|
16
|
+
|
17
|
+
1. Get [PHPUnit].
|
18
|
+
|
19
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
20
|
+
% chmod +x phpunit.phar
|
21
|
+
|
22
|
+
2. Execute the tests for an assignment.
|
23
|
+
|
24
|
+
% phpunit.phar wordy/wordy_test.php
|
25
|
+
|
26
|
+
[PHPUnit]: http://phpunit.de
|
27
|
+
|
28
|
+
|
29
|
+
## Source
|
30
|
+
|
31
|
+
Problem 6 at Project Euler [http://projecteuler.net/problem=6](http://projecteuler.net/problem=6)
|
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,66 @@
|
|
1
|
+
# Etl
|
2
|
+
|
3
|
+
We are going to do the `Transform` step of an Extract-Transform-Load.
|
4
|
+
|
5
|
+
### ETL
|
6
|
+
Extract-Transform-Load (ETL) is a fancy way of saying, "We have some crufty, legacy data over in this system, and now we need it in this shiny new system over here, so
|
7
|
+
we're going to migrate this."
|
8
|
+
|
9
|
+
(Typically, this is followed by, "We're only going to need to run this
|
10
|
+
once." That's then typically followed by much forehead slapping and
|
11
|
+
moaning about how stupid we could possibly be.)
|
12
|
+
|
13
|
+
### The goal
|
14
|
+
We're going to extract some scrabble scores from a legacy system.
|
15
|
+
|
16
|
+
The old system stored a list of letters per score:
|
17
|
+
|
18
|
+
- 1 point: "A", "E", "I", "O", "U", "L", "N", "R", "S", "T",
|
19
|
+
- 2 points: "D", "G",
|
20
|
+
- 3 points: "B", "C", "M", "P",
|
21
|
+
- 4 points: "F", "H", "V", "W", "Y",
|
22
|
+
- 5 points: "K",
|
23
|
+
- 8 points: "J", "X",
|
24
|
+
- 10 points: "Q", "Z",
|
25
|
+
|
26
|
+
The shiny new scrabble system instead stores the score per letter, which
|
27
|
+
makes it much faster and easier to calculate the score for a word. It
|
28
|
+
also stores the letters in lower-case regardless of the case of the
|
29
|
+
input letters:
|
30
|
+
|
31
|
+
- "a" is worth 1 point.
|
32
|
+
- "b" is worth 3 points.
|
33
|
+
- "c" is worth 3 points.
|
34
|
+
- "d" is worth 2 points.
|
35
|
+
- Etc.
|
36
|
+
|
37
|
+
Your mission, should you choose to accept it, is to transform the legacy data
|
38
|
+
format to the shiny new format.
|
39
|
+
|
40
|
+
### Notes
|
41
|
+
|
42
|
+
A final note about scoring, Scrabble is played around the world in a
|
43
|
+
variety of languages, each with its own unique scoring table. For
|
44
|
+
example, an "E" is scored at 2 in the Māori-language version of the
|
45
|
+
game while being scored at 4 in the Hawaiian-language version.
|
46
|
+
|
47
|
+
## Making the Test Suite Pass
|
48
|
+
|
49
|
+
1. Get [PHPUnit].
|
50
|
+
|
51
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
52
|
+
% chmod +x phpunit.phar
|
53
|
+
|
54
|
+
2. Execute the tests for an assignment.
|
55
|
+
|
56
|
+
% phpunit.phar wordy/wordy_test.php
|
57
|
+
|
58
|
+
[PHPUnit]: http://phpunit.de
|
59
|
+
|
60
|
+
|
61
|
+
## Source
|
62
|
+
|
63
|
+
The Jumpstart Lab team [http://jumpstartlab.com](http://jumpstartlab.com)
|
64
|
+
|
65
|
+
## Submitting Incomplete Solutions
|
66
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Gigasecond
|
2
|
+
|
3
|
+
Calculate the moment when someone has lived for 10^9 seconds.
|
4
|
+
|
5
|
+
A gigasecond is 10^9 (1,000,000,000) seconds.
|
6
|
+
|
7
|
+
## Making the Test Suite Pass
|
8
|
+
|
9
|
+
1. Get [PHPUnit].
|
10
|
+
|
11
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
12
|
+
% chmod +x phpunit.phar
|
13
|
+
|
14
|
+
2. Execute the tests for an assignment.
|
15
|
+
|
16
|
+
% phpunit.phar wordy/wordy_test.php
|
17
|
+
|
18
|
+
[PHPUnit]: http://phpunit.de
|
19
|
+
|
20
|
+
|
21
|
+
## Source
|
22
|
+
|
23
|
+
Chapter 9 in Chris Pine's online Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=09](http://pine.fm/LearnToProgram/?Chapter=09)
|
24
|
+
|
25
|
+
## Submitting Incomplete Solutions
|
26
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# Grade School
|
2
|
+
|
3
|
+
Given students' names along with the grade that they are in, create a roster
|
4
|
+
for the school.
|
5
|
+
|
6
|
+
In the end, you should be able to:
|
7
|
+
|
8
|
+
- Add a student's name to the roster for a grade
|
9
|
+
- "Add Jim to grade 2."
|
10
|
+
- "OK."
|
11
|
+
- Get a list of all students enrolled in a grade
|
12
|
+
- "Which students are in grade 2?"
|
13
|
+
- "We've only got Jim just now."
|
14
|
+
- Get a sorted list of all students in all grades. Grades should sort
|
15
|
+
as 1, 2, 3, etc., and students within a grade should be sorted
|
16
|
+
alphabetically by name.
|
17
|
+
- "Who all is enrolled in school right now?"
|
18
|
+
- "Grade 1: Anna, Barb, and Charlie. Grade 2: Alex, Peter, and Zoe.
|
19
|
+
Grade 3…"
|
20
|
+
|
21
|
+
Note that all our students only have one name. (It's a small town, what
|
22
|
+
do you want?)
|
23
|
+
|
24
|
+
|
25
|
+
## For bonus points
|
26
|
+
|
27
|
+
Did you get the tests passing and the code clean? If you want to, these
|
28
|
+
are some additional things you could try:
|
29
|
+
|
30
|
+
- If you're working in a language with mutable data structures and your
|
31
|
+
implementation allows outside code to mutate the school's internal DB
|
32
|
+
directly, see if you can prevent this. Feel free to introduce additional
|
33
|
+
tests.
|
34
|
+
|
35
|
+
Then please share your thoughts in a comment on the submission. Did this
|
36
|
+
experiment make the code better? Worse? Did you learn anything from it?
|
37
|
+
|
38
|
+
## Making the Test Suite Pass
|
39
|
+
|
40
|
+
1. Get [PHPUnit].
|
41
|
+
|
42
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
43
|
+
% chmod +x phpunit.phar
|
44
|
+
|
45
|
+
2. Execute the tests for an assignment.
|
46
|
+
|
47
|
+
% phpunit.phar wordy/wordy_test.php
|
48
|
+
|
49
|
+
[PHPUnit]: http://phpunit.de
|
50
|
+
|
51
|
+
|
52
|
+
## Source
|
53
|
+
|
54
|
+
A pairing session with Phil Battos at gSchool [http://gschool.it](http://gschool.it)
|
55
|
+
|
56
|
+
## Submitting Incomplete Solutions
|
57
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Grains
|
2
|
+
|
3
|
+
Calculate the number of grains of wheat on a chessboard given that the number
|
4
|
+
on each square doubles.
|
5
|
+
|
6
|
+
There once was a wise servant who saved the life of a prince. The king
|
7
|
+
promised to pay whatever the servant could dream up. Knowing that the
|
8
|
+
king loved chess, the servant told the king he would like to have grains
|
9
|
+
of wheat. One grain on the first square of a chess board. Two grains on
|
10
|
+
the next. Four on the third, and so on.
|
11
|
+
|
12
|
+
There are 64 squares on a chessboard.
|
13
|
+
|
14
|
+
Write code that shows:
|
15
|
+
- how many grains were on each square, and
|
16
|
+
- the total number of grains
|
17
|
+
|
18
|
+
|
19
|
+
## For bonus points
|
20
|
+
|
21
|
+
Did you get the tests passing and the code clean? If you want to, these
|
22
|
+
are some additional things you could try:
|
23
|
+
|
24
|
+
- Optimize for speed.
|
25
|
+
- Optimize for readability.
|
26
|
+
|
27
|
+
Then please share your thoughts in a comment on the submission. Did this
|
28
|
+
experiment make the code better? Worse? Did you learn anything from it?
|
29
|
+
|
30
|
+
## Making the Test Suite Pass
|
31
|
+
|
32
|
+
1. Get [PHPUnit].
|
33
|
+
|
34
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
35
|
+
% chmod +x phpunit.phar
|
36
|
+
|
37
|
+
2. Execute the tests for an assignment.
|
38
|
+
|
39
|
+
% phpunit.phar wordy/wordy_test.php
|
40
|
+
|
41
|
+
[PHPUnit]: http://phpunit.de
|
42
|
+
|
43
|
+
|
44
|
+
## Source
|
45
|
+
|
46
|
+
JavaRanch Cattle Drive, exercise 6 [http://www.javaranch.com/grains.jsp](http://www.javaranch.com/grains.jsp)
|
47
|
+
|
48
|
+
## Submitting Incomplete Solutions
|
49
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# Hamming
|
2
|
+
|
3
|
+
Calculate the Hamming difference between two DNA strands.
|
4
|
+
|
5
|
+
A mutation is simply a mistake that occurs during the creation or
|
6
|
+
copying of a nucleic acid, in particular DNA. Because nucleic acids are
|
7
|
+
vital to cellular functions, mutations tend to cause a ripple effect
|
8
|
+
throughout the cell. Although mutations are technically mistakes, a very
|
9
|
+
rare mutation may equip the cell with a beneficial attribute. In fact,
|
10
|
+
the macro effects of evolution are attributable by the accumulated
|
11
|
+
result of beneficial microscopic mutations over many generations.
|
12
|
+
|
13
|
+
The simplest and most common type of nucleic acid mutation is a point
|
14
|
+
mutation, which replaces one base with another at a single nucleotide.
|
15
|
+
|
16
|
+
By counting the number of differences between two homologous DNA strands
|
17
|
+
taken from different genomes with a common ancestor, we get a measure of
|
18
|
+
the minimum number of point mutations that could have occurred on the
|
19
|
+
evolutionary path between the two strands.
|
20
|
+
|
21
|
+
This is called the 'Hamming distance'.
|
22
|
+
|
23
|
+
It is found by comparing two DNA strands and counting how many of the
|
24
|
+
nucleotides are different from their equivalent in the other string.
|
25
|
+
|
26
|
+
GAGCCTACTAACGGGAT
|
27
|
+
CATCGTAATGACGGCCT
|
28
|
+
^ ^ ^ ^ ^ ^^
|
29
|
+
|
30
|
+
The Hamming distance between these two DNA strands is 7.
|
31
|
+
|
32
|
+
# Implementation notes
|
33
|
+
|
34
|
+
The Hamming distance is only defined for sequences of equal length. This means
|
35
|
+
that based on the definition, each language could deal with getting sequences
|
36
|
+
of equal length differently.
|
37
|
+
|
38
|
+
## Making the Test Suite Pass
|
39
|
+
|
40
|
+
1. Get [PHPUnit].
|
41
|
+
|
42
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
43
|
+
% chmod +x phpunit.phar
|
44
|
+
|
45
|
+
2. Execute the tests for an assignment.
|
46
|
+
|
47
|
+
% phpunit.phar wordy/wordy_test.php
|
48
|
+
|
49
|
+
[PHPUnit]: http://phpunit.de
|
50
|
+
|
51
|
+
|
52
|
+
## Source
|
53
|
+
|
54
|
+
The Calculating Point Mutations problem at Rosalind [http://rosalind.info/problems/hamm/](http://rosalind.info/problems/hamm/)
|
55
|
+
|
56
|
+
## Submitting Incomplete Solutions
|
57
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Hello World
|
2
|
+
|
3
|
+
The classical introductory exercise. Just say "Hello, World!".
|
4
|
+
|
5
|
+
["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is
|
6
|
+
the traditional first program for beginning programming in a new language
|
7
|
+
or environment.
|
8
|
+
|
9
|
+
The objectives are simple:
|
10
|
+
|
11
|
+
- Write a function that returns the string "Hello, World!".
|
12
|
+
- Run the test suite and make sure that it succeeds.
|
13
|
+
- Submit your solution and check it at the website.
|
14
|
+
|
15
|
+
If everything goes well, you will be ready to fetch your first real exercise.
|
16
|
+
|
17
|
+
## Making the Test Suite Pass
|
18
|
+
|
19
|
+
1. Get [PHPUnit].
|
20
|
+
|
21
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
22
|
+
% chmod +x phpunit.phar
|
23
|
+
|
24
|
+
2. Execute the tests for an assignment.
|
25
|
+
|
26
|
+
% phpunit.phar wordy/wordy_test.php
|
27
|
+
|
28
|
+
[PHPUnit]: http://phpunit.de
|
29
|
+
|
30
|
+
|
31
|
+
## Source
|
32
|
+
|
33
|
+
This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
|
34
|
+
|
35
|
+
## Submitting Incomplete Solutions
|
36
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Isogram
|
2
|
+
|
3
|
+
Determine if a word or phrase is an isogram.
|
4
|
+
|
5
|
+
An isogram (also known as a "nonpattern word") is a word or phrase without a repeating letter.
|
6
|
+
|
7
|
+
Examples of isograms:
|
8
|
+
|
9
|
+
- lumberjacks
|
10
|
+
- background
|
11
|
+
- downstream
|
12
|
+
|
13
|
+
The word *isograms*, however, is not an isogram, because the s repeats.
|
14
|
+
|
15
|
+
## Making the Test Suite Pass
|
16
|
+
|
17
|
+
1. Get [PHPUnit].
|
18
|
+
|
19
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
20
|
+
% chmod +x phpunit.phar
|
21
|
+
|
22
|
+
2. Execute the tests for an assignment.
|
23
|
+
|
24
|
+
% phpunit.phar wordy/wordy_test.php
|
25
|
+
|
26
|
+
[PHPUnit]: http://phpunit.de
|
27
|
+
|
28
|
+
|
29
|
+
## Source
|
30
|
+
|
31
|
+
Wikipedia [https://en.wikipedia.org/wiki/Isogram](https://en.wikipedia.org/wiki/Isogram)
|
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,35 @@
|
|
1
|
+
# Largest Series Product
|
2
|
+
|
3
|
+
Given a string of digits, calculate the largest product for a contiguous
|
4
|
+
substring of digits of length n.
|
5
|
+
|
6
|
+
For example, for the input `'1027839564'`, the largest product for a
|
7
|
+
series of 3 digits is 270 (9 * 5 * 6), and the largest product for a
|
8
|
+
series of 5 digits is 7560 (7 * 8 * 3 * 9 * 5).
|
9
|
+
|
10
|
+
Note that these series are only required to occupy *adjacent positions*
|
11
|
+
in the input; the digits need not be *numerically consecutive*.
|
12
|
+
|
13
|
+
For the input `'73167176531330624919225119674426574742355349194934'`,
|
14
|
+
the largest product for a series of 6 digits is 23520.
|
15
|
+
|
16
|
+
## Making the Test Suite Pass
|
17
|
+
|
18
|
+
1. Get [PHPUnit].
|
19
|
+
|
20
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
21
|
+
% chmod +x phpunit.phar
|
22
|
+
|
23
|
+
2. Execute the tests for an assignment.
|
24
|
+
|
25
|
+
% phpunit.phar wordy/wordy_test.php
|
26
|
+
|
27
|
+
[PHPUnit]: http://phpunit.de
|
28
|
+
|
29
|
+
|
30
|
+
## Source
|
31
|
+
|
32
|
+
A variation on Problem 8 at Project Euler [http://projecteuler.net/problem=8](http://projecteuler.net/problem=8)
|
33
|
+
|
34
|
+
## Submitting Incomplete Solutions
|
35
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# Leap
|
2
|
+
|
3
|
+
Given a year, report if it is a leap year.
|
4
|
+
|
5
|
+
The tricky thing here is that a leap year in the Gregorian calendar occurs:
|
6
|
+
|
7
|
+
```plain
|
8
|
+
on every year that is evenly divisible by 4
|
9
|
+
except every year that is evenly divisible by 100
|
10
|
+
unless the year is also evenly divisible by 400
|
11
|
+
```
|
12
|
+
|
13
|
+
For example, 1997 is not a leap year, but 1996 is. 1900 is not a leap
|
14
|
+
year, but 2000 is.
|
15
|
+
|
16
|
+
If your language provides a method in the standard library that does
|
17
|
+
this look-up, pretend it doesn't exist and implement it yourself.
|
18
|
+
|
19
|
+
## Notes
|
20
|
+
|
21
|
+
Though our exercise adopts some very simple rules, there is more to
|
22
|
+
learn!
|
23
|
+
|
24
|
+
For a delightful, four minute explanation of the whole leap year
|
25
|
+
phenomenon, go watch [this youtube video][video].
|
26
|
+
|
27
|
+
[video]: http://www.youtube.com/watch?v=xX96xng7sAE
|
28
|
+
|
29
|
+
## Making the Test Suite Pass
|
30
|
+
|
31
|
+
1. Get [PHPUnit].
|
32
|
+
|
33
|
+
% wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
|
34
|
+
% chmod +x phpunit.phar
|
35
|
+
|
36
|
+
2. Execute the tests for an assignment.
|
37
|
+
|
38
|
+
% phpunit.phar wordy/wordy_test.php
|
39
|
+
|
40
|
+
[PHPUnit]: http://phpunit.de
|
41
|
+
|
42
|
+
|
43
|
+
## Source
|
44
|
+
|
45
|
+
JavaRanch Cattle Drive, exercise 3 [http://www.javaranch.com/leap.jsp](http://www.javaranch.com/leap.jsp)
|
46
|
+
|
47
|
+
## Submitting Incomplete Solutions
|
48
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|