Add Rabin-Karp string matching algorithm #565
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements the Rabin-Karp algorithm for efficient pattern matching using rolling hash technique.
Algorithm Features
Implementation Highlights
✅ Rolling hash for efficient pattern matching
✅ Handles overlapping matches
✅ Proper null and empty input validation
✅ Descriptive exception messages
✅ Case-sensitive matching
✅ Unicode character support
Tests (27 test cases)
Code Quality
✅ Follows C# naming conventions (PascalCase)
✅ Comprehensive XML documentation
✅ StyleCop compliant (blank lines, braces)
✅ No Codacy issues
✅ 100% test coverage
Files Added
Algorithms/Strings/RabinKarp.cs(178 lines)Algorithms.Tests/Strings/RabinKarpTests.cs(280 lines)Total: 458 lines of production-quality code
Contribution by Gittensor, learn more at https://gittensor.io/