About this project

The Algorithms - Go is an open-source educational repository that implements a wide variety of algorithms and data structures in the Go programming language. It is part of the larger The Algorithms project and is licensed under the MIT License. The repository organizes implementations into packages across several domains: - **Strings**: Aho-Corasick pattern matching, combinations, genetic string generation, and parenthesis generation. - **Math**: Armstrong numbers, binary operations (bit counting, fast inverse square root, Gray code), Catalan numbers, factorial, Fibonacci, GCD, and geometry calculations. - **Ciphers**: Caesar cipher and Diffie-Hellman key exchange. - **Dynamic programming**: Coin change, edit distance, knapsack, longest common subsequence, longest increasing subsequence, matrix chain multiplication, and more. - **Data structures**: LRU and LFU caches, double-ended queue (deque), and dynamic array. - **Compression**: Huffman coding for encoding and decoding. - **Conversion**: Base64, binary-decimal, Roman numerals, and RGB/hex color conversions. - **Checksums**: CRC8 and Luhn algorithm. - **Graph coloring**: Bipartite checking and graph coloring algorithms. The project is aimed at beginners and follows best practices. It includes tests for many implementations, continuous integration via GitHub Actions, and code coverage reporting through Codecov. Contribution guidelines are provided for those who wish to add new algorithms or improve existing ones. The repository also maintains a Discord community for discussion and support.