* fix: fix mypy errors
Update binary_search_tree `arr` argument to be typed as a list
within `find_kth_smallest` function
Update return type of `merge_two_binary_trees` as both inputs can
be None which means that a None type value can be returned from
this function
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* [mypy] fix type annotations for graphs/a_star.py #4052
* updating DIRECTORY.md
* Add from __future__ import anotations
* rename delta by DIRECTIONS
Co-authored-by: John Law <johnlaw.po@gmail.com>
* Rename delta by DIRECTIONS in all code
* Enclose script in __main__ code block
* Refactor DIRECTIONS with comments for readibility
* Delete heuristic example comment
* Do not print, return all values
* Fix multilines
* fix black
* Update a_star.py
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>
* Add missing type annotation
* Fix conversion bug
This failed when called with the documented example of `1.5` and was correctly
pointed out by `mypy --strict`
* Update annotations to Python 3.10 #4052
* Add floats doctest
* Copy list to avoid changing input unpredictably
* Refactor code to make it readable
* updating DIRECTORY.md
* Improve raised ValueErrors and add doctest
* Split doctest in multiples lines
* Change ValueError to Monogons and Digons are not poly
* Correct doctest refering number of sides
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Fix several typos
* Update bit_manipulation/README.md
Co-authored-by: John Law <johnlaw.po@gmail.com>
* Update double_sort.py
Co-authored-by: John Law <johnlaw.po@gmail.com>
* 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>
This is a followup to https://github.com/TheAlgorithms/Python/pull/4973#issuecomment-933117382
As per given suggestion, I've added type hints to certain methods that don't have them. I have also added documentation and example doctests as a usage example for (most of) those that don't have them.
I have also added another test case following the previous test case's format. I noticed that the existing test case from previous pull request might be redundant with the ones I've made, so I decided to create a specific situation where the linked list would have to keep different kinds of data types for each node, in `test_singly_linked_list_2` test function.
Some minor changes in strings has been done to keep things consistent with other parts of the document. If it is undesirable, please let me know.
* Remove exception detail from doctest
These details are configuration dependant so should be removed according to https://docs.python.org/3/library/doctest.html
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Added length unit conversions
Conversion of length units were added with respective tests being implemented and passed.
Available Units:- Metre,Kilometre,Feet,Inch,Centimeter,Yard,Foot,Mile,Millimeter
* Formatted File
File was formatted to go as per repo rules
* Reformatted file
* Reformatted code once again
* Added more test
Added test to evaluate whether the code handles wrong arguements passed
* Update length_conversions.py
* Update length_conversions.py
* Update length_conversions.py
* Update length_conversions.py
* Update length_conversions.py
* Update length_conversions.py
* Update length_conversions.py
* Fixed Minor errors in test
One of the test was failing and it was fixed
Co-authored-by: Christian Clauss <cclauss@me.com>
* added schur complement and tests to linear algebra
* updated according to checklist
* updated variable names and typing
* added two testcases for input validation
* fixed import order
Co-authored-by: Ivan Radonov <ivan.radonov@ad.mentormate.bg>
* Added giphy.py to fetch gifs on a given topic
* Modified code
[*]Added doctest
[*]Formatted with black
* Minor change
* Minor refactoring to avoid name clash
* Made necessary changes as per review
* Update web_programming/giphy.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Apply suggestions from code review
* Final cleanup
* Placate psf/black
Co-authored-by: Christian Clauss <cclauss@me.com>
* added harmonic mean
* Update maths/series/harmonic_mean.py
Updated the write-up of reference given in the code.
Co-authored-by: John Law <johnlaw.po@gmail.com>
* changes in arithmetic and geometric mean code
* mean and series added in a single file
Co-authored-by: John Law <johnlaw.po@gmail.com>
* Added morphological operations, fixes: #5197
* Added dilation tests and type hints
* Added erosion tests and type hints
* fixes: TheAlgorithms#5197
* fixes: TheAlgorithms#5197
* Update erosion_operation.py
* made suggested changes in dilation
* made suggested changes in erosion
* made suggested changes in dilation
* removed extra spaces in the tests
* removed extra spaces in the tests
* improved readability of the existing method by reformatting, adding documentations with doctests.
* improved readability of the existing method by reformatting, adding documentations with doctests.
* fixed typo in test
* added doctest to parse dictionary method
* added doctest to parse dictionary method
* Changed return type, removed print() from method and implemented doctests as suggested
* Fixed doctest error, removed print() from method, created new script as suggested
* Update get_imdbtop.py
* Fix typo discovered by codespell
* return ()
Co-authored-by: Christian Clauss <cclauss@me.com>
* Added new script to open the google image tab with a search query.
* Added new script to open the google image tab with a search query.
* Added new script to open the google image tab with a search query with doctests.
* Fixed doctest error, removed print() from method, changed return type
* Update web_programming/show_image_tab_from_google_query.py
using iterators instead of lists
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update web_programming/show_image_tab_from_google_query.py
Improve readability by removing one-time used variable
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update web_programming/show_image_tab_from_google_query.py
Decreasing complication through standard practices.
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update web_programming/show_image_tab_from_google_query.py
Exception Handling
Co-authored-by: Christian Clauss <cclauss@me.com>
* changed complete method to download images from google search query
* Update download_images_from_google_query.py
* Delete show_image_tab_from_google_query.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* matching algorithm for min vertex cover problem
* fixed hint on row 37
* changed variable names
* provided doctest for get_edges function
* Removed dict.keys() iteration
* Update matching_min_vertex_cover.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* added complete graph generator function
* added doctest, type hints, wikipedia explanation
* added return type hint for function complete_graph
* added descriptive name for the parameter: n
* random graph generator with doctest and type hints
* added Greedy min vertex algorithm
* pre-commit hook(s) made changes
* Delete complete_graph_generator.py
* Delete random_graph_generator.py
* fixed doctest
* updated commit following highligths
* fixed following pre-commit highlights
* modified variables names
* Add Proth number to maths
* Add test for 0 and more informative output
* Fixing test failure issue - unused variable
* Update proth_number.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Magnitude and Angle
Core function to find Magnitude and Angle of two Given Vector
* Magnitude and Angle with Doctest
added Doctest to the functions
* Update linear_algebra/src/lib.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update linear_algebra/src/lib.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Changes done
and Magnitude and Angle Issues
* black
* Modified Euler's Method
Adding Modified Euler's method, which was the further change to a Euler method and known for better accuracy to the given value
* Modified Euler's Method (changed the typing of function)
Modified function is used for better accuracy
* Link added
Added link to an explanation as per Contributions Guidelines
* Resolving Pre-Commit error
* Pre-Commit Error Resolved
* Pre-Commit Error import statement Change
* Removed Import Math
* import math built issue
* adding space pre-commit error
* statement sorter for doc
Co-authored-by: Christian Clauss <cclauss@me.com>
* Magnitude and Angle
Core function to find Magnitude and Angle of two Given Vector
* Magnitude and Angle with Doctest
added Doctest to the functions
* Update linear_algebra/src/lib.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update linear_algebra/src/lib.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Changes done
and Magnitude and Angle Issues
* black
Co-authored-by: Christian Clauss <cclauss@me.com>
* [mypy] fix type annotations for problem003/sol1 and problem003/sol3
* [mypy] fix type annotations for project euler problem007/sol2
* [mypy] fix type annotations for project euler problem008/sol2
* [mypy] fix type annotations for project euler problem009/sol1
* [mypy] fix type annotations for project euler problem014/sol1
* [mypy] fix type annotations for project euler problem 025/sol2
* [mypy] fix type annotations for project euler problem026/sol1.py
* [mypy] fix type annotations for project euler problem037/sol1
* [mypy] fix type annotations for project euler problem044/sol1
* [mypy] fix type annotations for project euler problem046/sol1
* [mypy] fix type annotations for project euler problem051/sol1
* [mypy] fix type annotations for project euler problem074/sol2
* [mypy] fix type annotations for project euler problem080/sol1
* [mypy] fix type annotations for project euler problem099/sol1
* [mypy] fix type annotations for project euler problem101/sol1
* [mypy] fix type annotations for project euler problem188/sol1
* [mypy] fix type annotations for project euler problem191/sol1
* [mypy] fix type annotations for project euler problem207/sol1
* [mypy] fix type annotations for project euler problem551/sol1
* Algorithm Optimized
* Update divide_and_conquer/inversions.py
Co-authored-by: John Law <johnlaw.po@gmail.com>
* Update divide_and_conquer/inversions.py
Co-authored-by: John Law <johnlaw.po@gmail.com>
* Update divide_and_conquer/inversions.py
Co-authored-by: John Law <johnlaw.po@gmail.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>