add ZAlgorithm for linear pattern matching #6579
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.
Description
Implements the Z-Algorithm for pattern matching in linear time O(n+m).
Changes
ZAlgorithm.java
with linear time pattern matching implementationZAlgorithmTest.java
Features
O(n+m) time complexity for pattern matching
Handles edge cases (null inputs, empty strings, overlapping patterns)
Well-documented with JavaDoc comments
13 comprehensive test cases covering all scenarios
[x ] I have read CONTRIBUTING.md.
[x ] This pull request is all my own work -- I have not plagiarized it.
[x ] All filenames are in PascalCase.
[x ] All functions and variable names follow Java naming conventions.
[ x] All new algorithms have a URL in their comments that points to Wikipedia or other similar explanations.
[ x] All new code is formatted with
clang-format -i --style=file path/to/your/file.java