A repository for learning about problems.
The idea is to make it easy to casually do
- project euler,
- codejam,
- topcoder,
- problems from books??? or other problems while learning new languages and beating each other up in code reviews.
The code reporistory is hosted on github at https://github.com/b0ri5/solvents.
There are samples for each language located in the samples directory.
The code is checked for style/lint and passing tests via CircleCI.
Here's how to do it exclusively via the github web interface.
- Pick a problem. For example, the first project euler problem: http://projecteuler.net/problem=1
- Create a new branch via the github interface called, say
b0ri5-euler-1
- Create a new file for whatever solution you'd like to add, say
projecteuler/0001/sum_divisors.js
(unsure if this is okay to be used as a package name for java or go but lets go with it). - Write the solution in the github web editor
- Commit the file the branch (at the bottom of the editor)
- Write the test
projecteuler/0001/sum_divisors_test.js
and commit that as well - You should then be able to check travis-ci to see if it's started trying to build your newly added solution. It should complain if there are any lint or tests that don't pass.
- Create a pull request to merge the branch into main.
- Bug someone to review the code (assigning should probably work)
- Once you get the "Looks good to me" or "LGTM" and travis-ci reports a passing build, merge it into main and delete the remote branch.
And here's how to do it via commandline.
TODO(b0ri5): Add instructions on how to work on stuff from the commandline.
- C++
- tested with gtest
- checked by clang-format. TODO(b0ri5): Check with clang-modernize and cpplint
- Go
- Java
- tested with junit4
- TODO(b0ri5): Check style with checkstyle
- Typescript
- Python