Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/plutov/practice-go
Practice Go: a collection of Go programming challenges
https://github.com/plutov/practice-go
go golang hacktoberfest
Last synced: 7 days ago
JSON representation
Practice Go: a collection of Go programming challenges
- Host: GitHub
- URL: https://github.com/plutov/practice-go
- Owner: plutov
- Created: 2017-02-15T04:22:01.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-11-09T18:51:40.000Z (about 1 month ago)
- Last Synced: 2024-11-13T14:51:29.256Z (29 days ago)
- Topics: go, golang, hacktoberfest
- Language: Go
- Homepage:
- Size: 3.05 MB
- Stars: 946
- Watchers: 36
- Forks: 171
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-repositories - plutov/practice-go - Practice Go: a collection of Go programming challenges (Go)
README
## Go coding exercises and elegant solutions
### How to solve
- Each challenge(folder) has a README.md file and `*_test.go` file, check it and find what kind of function you need to implement.
- You may use anything you want except the 3rd-party packages.
- Implement the function.
- Run the tests and benchmarks.
- Create a PR and answer questions from PR template.
- We will choose the most fast and elegant solution and merge into the repo.
- New solutions may come in later and be merged as well if they are: faster, cleaner, have less CPU/Mem footprint### Challenges
- [x] ([@macocha](https://github.com/macocha), [@mick4711](https://github.com/mick4711)) [chess](https://github.com/plutov/practice-go/tree/master/chess)
- [x] ([@kennygrant](https://github.com/kennygrant)) [floyd](https://github.com/plutov/practice-go/tree/master/floyd)
- [x] ([@ledongthuc](https://github.com/ledongthuc)) [anagram](https://github.com/plutov/practice-go/tree/master/anagram)
- [x] ([@heliac2000](https://github.com/heliac2000)) [jaro](https://github.com/plutov/practice-go/tree/master/jaro)
- [x] ([@nguyengiabk](https://github.com/nguyengiabk)) [mergesort](https://github.com/plutov/practice-go/tree/master/mergesort)
- [x] ([@nguyengiabk](https://github.com/nguyengiabk)) [wordladder](https://github.com/plutov/practice-go/tree/master/wordladder)
- [x] ([@EvenPeng](https://github.com/EvenPeng)) [sumdecimal](https://github.com/plutov/practice-go/tree/master/sumdecimal)
- [x] ([@bediger4000](https://github.com/bediger4000)) [buildword](https://github.com/plutov/practice-go/tree/master/buildword)
- [x] ([@zerkms](https://github.com/zerkms)) [shorthash](https://github.com/plutov/practice-go/tree/master/shorthash)
- [x] ([@zerkms](https://github.com/zerkms)) [romannumerals](https://github.com/plutov/practice-go/tree/master/romannumerals)
- [x] ([@zerkms](https://github.com/zerkms)) [lastlettergame](https://github.com/plutov/practice-go/tree/master/lastlettergame)
- [x] ([@duckbrain](https://github.com/duckbrain)) [reverseparentheses](https://github.com/plutov/practice-go/tree/master/reverseparentheses)
- [x] ([@kennygrant](https://github.com/kennygrant)) [functionfrequency](https://github.com/plutov/practice-go/tree/master/functionfrequency)
- [x] ([@marz619](https://github.com/marz619)) [coins](https://github.com/plutov/practice-go/tree/master/coins)
- [x] ([@marz619](https://github.com/marz619)) [secretmessage](https://github.com/plutov/practice-go/tree/master/secretmessage)
- [x] ([@shogg](https://github.com/shogg)) [missingnumbers](https://github.com/plutov/practice-go/tree/master/missingnumbers)
- [x] ([@HDudzus](https://github.com/HDudzus)) [spiral](https://github.com/plutov/practice-go/tree/master/spiral)
- [x] ([@TomLefley](https://github.com/TomLefley)) [warriors](https://github.com/plutov/practice-go/tree/master/warriors)
- [x] ([@shogg](https://github.com/shogg)) [snowflakes](https://github.com/plutov/practice-go/tree/master/snowflakes)
- [x] ([@shogg](https://github.com/shogg)) [brokennode](https://github.com/plutov/practice-go/tree/master/brokennode)
- [x] ([@shogg](https://github.com/shogg)) [nasacollage](https://github.com/plutov/practice-go/tree/master/nasacollage)
- [x] ([@shogg](https://github.com/shogg)) [node_degree](https://github.com/plutov/practice-go/tree/master/node_degree)
- [x] ([@brianpzaide](https://github.com/brianpzaide)) [compression](https://github.com/plutov/practice-go/tree/master/compression)
- [x] ([@CicadaCinema](https://github.com/CicadaCinema)) [calculator](https://github.com/plutov/practice-go/tree/master/calculator)### Run tests with benchmarks
Run it in the challenge folder:
```
go test -bench .
```### How to contribute
You may suggest other challenges as well, not only of DSA type.
Create a new challenge using this small bash script and create a PR.
```
./new.sh challenge_name
```The challenge must follow these rules:
- Explain the challenge well in README.md file so it's clear to everyone what needs to be done.
- Cover as much of test cases as possible, edge cases as well so people who solve it can focus on the implementation only.