Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Create aho_corasick.cpp #3027

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
kokatesaurabh wants to merge 2 commits into TheAlgorithms:master
base: master
Choose a base branch
Loading
from kokatesaurabh:master

Conversation

@kokatesaurabh
Copy link

@kokatesaurabh kokatesaurabh commented Oct 4, 2025

Implements the Aho-Corasick algorithm for efficient multi-pattern string searching in the strings/ directory. This adds support for finding multiple patterns in a text string in linear time O(n + m + z), where n is the text length, m is the total patterns length, and z is the number of matches. The implementation builds a trie for patterns, computes failure links via BFS, and traverses the text while collecting matches through output links. It is fully self-contained using STL (no external libs) and includes comprehensive Doxygen documentation, edge-case tests (empty inputs, no matches, overlaps), and asserts for verification. Inspired by standard algorithmic descriptions but rewritten from scratch for educational clarity—no direct code reuse from external sources.
This fills a gap in advanced string matching, complementing existing single-pattern algos like KMP and Rabin-Karp. Tested locally with CMake; all asserts pass.
Notes: Original implementation emphasizing trie construction and failure function for learning purposes. Commit follows semantic prefixes.

  • Added description of change
  • Added file name matches File name guidelines
  • Added tests and example, test must pass
  • Added documentation so that the program is self-explanatory and educational - Doxygen guidelines
  • Relevant documentation/comments is changed or added
  • PR title follows semantic commit guidelines
  • Search previous suggestions before making a new one, as yours may be a duplicate.
  • I acknowledge that all my contributions will be made under the project's license.

Notes:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@Panquesito7 Panquesito7 Awaiting requested review from Panquesito7 Panquesito7 is a code owner

@realstealthninja realstealthninja Awaiting requested review from realstealthninja realstealthninja is a code owner

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /