Skip to content

Adding solution of Aho-Corasick Algorithm. #3796

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

Merged
merged 2 commits into from
Jul 23, 2024

Conversation

sjain1970
Copy link
Contributor

@sjain1970 sjain1970 commented Jul 22, 2024

Fixing Issue

Fix #3771

Description

This pull request adds the implementation of the Aho-Corasick algorithm in C++ to the DSA folder. The Aho-Corasick algorithm is used for searching multiple patterns simultaneously within a text. It builds a trie of the patterns and uses a failure function to efficiently search for all patterns in O(n + m + z) time complexity, where n is the length of the text, m is the total length of all patterns, and z is the number of pattern occurrences.

Type of PR

  • Bug fix
  • Feature enhancement
  • Documentation update
  • Security enhancement
  • Other (specify): _______________

Checklist

  • I have performed a self-review of my code.
  • I have read and followed the Contribution Guidelines.
  • I have tested the changes thoroughly before submitting this pull request.
  • I have provided relevant issue numbers, screenshots, and videos after making the changes.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have followed the code style guidelines of this project.
  • I have checked for any existing open issues that my pull request may address.
  • I have ensured that my changes do not break any existing functionality.
  • Each contributor is allowed to create a maximum of 4 issues per day. This helps us manage and address issues efficiently.
  • I have read the resources for guidance listed below.
  • I have followed security best practices in my code changes.

Additional Context

The Aho-Corasick algorithm implementation includes:

  • Construction of a trie for multiple pattern strings.
  • Implementation of the failure function to handle mismatches efficiently.
  • Efficient search for multiple patterns within a given text.
  • Clear and well-commented code for easy understanding and maintenance.

Resources for Guidance

Please read the following resources before submitting your contribution:

## Fixing Issue codeharborhub#3771

## Description

This pull request adds the implementation of the Aho-Corasick algorithm in C++ to the DSA folder. The Aho-Corasick algorithm is used for searching multiple patterns simultaneously within a text. It builds a trie of the patterns and uses a failure function to efficiently search for all patterns in O(n + m + z) time complexity, where n is the length of the text, m is the total length of all patterns, and z is the number of pattern occurrences.

## Type of PR

- [ ] Bug fix
- [x] Feature enhancement
- [ ] Documentation update
- [ ] Security enhancement
- [ ] Other (specify): _______________

## Checklist
- [x] I have performed a self-review of my code.
- [x] I have read and followed the Contribution Guidelines.
- [x] I have tested the changes thoroughly before submitting this pull request.
- [x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
- [x] I have commented my code, particularly in hard-to-understand areas.
- [x] I have followed the code style guidelines of this project.
- [x] I have checked for any existing open issues that my pull request may address.
- [x] I have ensured that my changes do not break any existing functionality.
- [x] Each contributor is allowed to create a maximum of 4 issues per day. This helps us manage and address issues efficiently.
- [x] I have read the resources for guidance listed below.
- [x] I have followed security best practices in my code changes.

## Additional Context

The Aho-Corasick algorithm implementation includes:
- Construction of a trie for multiple pattern strings.
- Implementation of the failure function to handle mismatches efficiently.
- Efficient search for multiple patterns within a given text.
- Clear and well-commented code for easy understanding and maintenance.

## Resources for Guidance

Please read the following resources before submitting your contribution:

- [x] [Code Harbor Hub Community Features](https://www.codeharborhub.live/community/features)
- [x] [Markdown Guide](https://www.markdownguide.org/)
@sjain1970 sjain1970 requested a review from ajay-dhangar as a code owner July 22, 2024 17:20
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job, @sjain1909! 🎉 Thank you for submitting your pull request to CodeHarborHub. We appreciate your contribution and enthusiasm! Our team will review it soon. If you have any questions or need further assistance, feel free to reach out. Thanks for contributing!

Copy link
Contributor

deepsource-io bot commented Jul 22, 2024

Here's the code health analysis summary for commits 897892b..3115d22. View details on DeepSource ↗.

Analysis Summary

AnalyzerStatusSummaryLink
DeepSource JavaScript LogoJavaScript✅ SuccessView Check ↗

💡 If you’re a repository administrator, you can configure the quality gates from the settings.

@sjain1970
Copy link
Contributor Author

@ajay-dhangar sir, kindly review and please let me know if any changes required.

@ajay-dhangar ajay-dhangar added documentation Improvements or additions to documentation GSSOC'24 GirlScript Summer of Code | Contributor level1 GirlScript Summer of Code | Contributor's Levels gssoc GirlScript Summer of Code | Contributor labels Jul 23, 2024
Copy link

⚡️ Lighthouse Report for the Deploy Preview of this PR 🚀

🔗 Site: CodeHarborHub | Live Site

URL 🌐 Performance Accessibility Best Practices SEO 📊
/ 🔴 28 🟡 86 🟡 75 🟡 86 📄
/docs 🔴 42 🟢 96 🟢 96 🟢 100 📄
/docs/category/javascript 🔴 46 🟢 96 🟢 96 🟢 100 📄
/courses 🔴 44 🟢 96 🟢 96 🟢 100 📄
/courses/category/reactjs 🔴 47 🟢 96 🟢 96 🟢 100 📄
/dsa-problems 🔴 48 🟢 96 🟢 96 🟢 100 📄
/dsa-problems/category/leetcode-problems 🔴 45 🟢 96 🟢 96 🟢 100 📄
/dsa-solutions 🔴 49 🟢 96 🟢 96 🟢 100 📄
/dsa-solutions/category/leetcode-solutions 🔴 44 🟢 96 🟢 96 🟢 100 📄
/blog 🔴 35 🟢 95 🟢 96 🟢 100 📄
/showcase 🔴 47 🟢 95 🟡 75 🟡 86 📄
/community 🔴 48 🟢 96 🟢 96 🟢 100 📄
/docs/tags 🔴 38 🟢 96 🟢 96 🟡 86 📄
/product 🟡 51 🟢 96 🟢 96 🟢 100 📄

Copy link
Member

@ajay-dhangar ajay-dhangar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@ajay-dhangar ajay-dhangar merged commit a61a057 into codeharborhub:main Jul 23, 2024
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation gssoc GirlScript Summer of Code | Contributor GSSOC'24 GirlScript Summer of Code | Contributor level1 GirlScript Summer of Code | Contributor's Levels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request]: Implementing Aho-Corasick Algorithm in C++ under DSA folder.
2 participants