All Algorithms implemented in Python the-algorithms.com/
Go to file
P U N I T H 83cf5786cd
Add wildcard pattern matching using dynamic programming (#5334)
* Added regular expression implimentation using dp

* replaced input() with example values

* Apply suggestions from code review

Co-authored-by: Christian Clauss <cclauss@me.com>

* changed returning value to bool and added test cases

* added doctest

Co-authored-by: John Law <johnlaw.po@gmail.com>

* added test cases

* Apply suggestions from code review

Co-authored-by: John Law <johnlaw.po@gmail.com>

* shifted to strings

* Changed filename

* Update function name to match_pattern

Co-authored-by: John Law <johnlaw.po@gmail.com>

* Update function name to match_pattern

Co-authored-by: John Law <johnlaw.po@gmail.com>

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>
2021-10-20 16:30:58 +08:00
.github It is OK to test ./scripts (#5290) 2021-10-14 18:19:47 +02:00
arithmetic_analysis Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
backtracking Correct grammar of comment in backtracking/hamiltonian_cycle.py (#4868) 2021-10-02 15:51:53 +02:00
bit_manipulation Create count_1s_brian_kernighan_method (#5385) 2021-10-18 18:53:10 +02:00
blockchain Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
boolean_algebra Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
cellular_automata Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
ciphers Add Polybius cipher (#5409) 2021-10-19 08:37:51 +02:00
compression Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
computer_vision feat: CNN classification added to computer vision (#4350) 2021-06-24 11:58:23 +05:30
conversions length_conversion.py: Deal with uppercase and abbreviations (#5433) 2021-10-19 11:11:49 +02:00
data_structures singly_linked_list: Added additional documentation, type hints and test cases (#4988) 2021-10-20 16:08:39 +08:00
digital_image_processing Added morphological operations, fixes: #5197 (#5199) 2021-10-16 16:32:40 +02:00
divide_and_conquer Remove unnecessary branch (#4824) 2021-10-12 00:33:06 +08:00
dynamic_programming [mypy] Fix type annotations for dynamic programming (#4687) 2021-09-03 11:49:23 +02:00
electronics Add carrier concentrations calculation algorithm (#4791) 2021-10-12 00:29:52 +08:00
file_transfer [mypy] fix small folders (#4292) 2021-03-23 16:51:50 +01:00
fractals Add Julia sets to fractals (#4382) 2021-09-29 13:42:11 +08:00
fuzzy_logic Add __init__.py files in all the directories (#2503) 2020-09-28 19:42:36 +02:00
genetic_algorithm Add __init__.py files in all the directories (#2503) 2020-09-28 19:42:36 +02:00
geodesy Fix imports for all namespace packages (#2506) 2020-09-28 23:41:04 +02:00
graphics New fractals folder (#4277) 2021-03-20 06:49:30 +01:00
graphs [mypy] Fix type annotations for graphs/boruvka (#4867) 2021-10-17 18:26:12 +02:00
greedy_methods Added Optimal Merge Pattern Algorithm (#5274) 2021-10-14 12:51:13 +02:00
hashes Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
knapsack Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
linear_algebra added Schur complement to linear algebra (#4793) 2021-10-18 18:46:47 +02:00
machine_learning Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
maths Re-organize math/series (#5044) 2021-10-18 12:46:23 +08:00
matrix Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
networking_flow Add __init__.py files in all the directories (#2503) 2020-09-28 19:42:36 +02:00
neural_network [mypy] fix small folders 2 (#4293) 2021-03-26 12:21:16 +01:00
other Added check_strong_password.py (#4950) 2021-10-20 07:35:41 +02:00
physics Add algorithm for N-body simulation - retry (#4298) 2021-04-04 13:23:48 +02:00
project_euler [mypy] fix mypy error in Project Euler Problem 092 solution 1 (#5357) 2021-10-17 08:07:45 +02:00
quantum Approve functions used as default arguments (#4699) 2021-08-31 07:56:19 +02:00
scheduling Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
scripts Wavelet tree (#4267) 2021-06-08 22:49:33 +02:00
searches Pyupgrade to Python 3.9 (#4718) 2021-09-07 13:37:03 +02:00
sorts Fix word typos in comments (#4928) 2021-10-04 12:07:58 +08:00
strings Add wildcard pattern matching using dynamic programming (#5334) 2021-10-20 16:30:58 +08:00
web_programming Added giphy.py to fetch gifs on a given topic (#5378) 2021-10-18 09:16:42 +02:00
.coveragerc Add pytest-cov (#1578) 2019-11-17 19:37:58 +01:00
.gitattributes Create .gitattributes for Cross OS compatibility (#3410) 2020-10-17 07:25:25 +02:00
.gitignore contribution guidelines checks (#1787) 2020-03-04 13:40:28 +01:00
.gitpod.yml Change gitpod configuration for python3. (#1827) 2020-04-07 12:20:08 +02:00
.pre-commit-config.yaml fix(ci): Update pre-commit hooks and apply new black (#4359) 2021-04-26 07:46:50 +02:00
CONTRIBUTING.md Typo (#5443) 2021-10-19 21:36:01 +02:00
DIRECTORY.md length_conversion.py: Deal with uppercase and abbreviations (#5433) 2021-10-19 11:11:49 +02:00
LICENSE.md Update LICENSE.md (#4210) 2021-02-19 19:15:19 +01:00
mypy.ini Updated mypy.ini, removed ok folders that were excluded (#5331) 2021-10-15 23:57:41 +02:00
pytest.ini Move validate_solutions and add durations flag to pytest.ini (#3704) 2020-10-24 19:07:33 +05:30
README.md docs: renovate README (#4620) 2021-09-29 23:34:35 +05:30
requirements.txt Wavelet tree (#4267) 2021-06-08 22:49:33 +02:00

The Algorithms - Python

Gitpod Ready-to-Code Contributions Welcome Donate Discord chat Gitter chat
GitHub Workflow Status LGTM pre-commit code style: black

All algorithms implemented in Python - for education

Implementations are for learning purposes only. As they may be less efficient than the implementations in the Python standard library, use them at your discretion.

Getting Started

Read through our Contribution Guidelines before you contribute.

Community Channels

We're on Discord and Gitter! Community channels are great for you to ask questions and get help. Please join us!

List of Algorithms

See our directory for easier navigation and better overview of the project.