Commit Graph

1785 Commits

Author SHA1 Message Date
Dmytro Litvinov
7df91e681a
Add type hints for searches/ternary_search.py (#2874) 2020-10-05 23:14:35 +05:30
Sherman Hui
477b2c24b8
Hacktoberfest: Update Linked List - print_reverse method (#2792)
* chore: update print_reverse helper method

Use a generator expression instead of slicing
`elements_list` to improve the space and time complexity
of `make_linked_list` to O(1) space and O(n) time
by avoiding the creation a shallow copy of `elements_list`.

* fix: add type checking and argument typing

Add argument typing to all methods in `print_reverse`

Add doctest to helper function `make_linked_list` and
basic edge case tests to `print_reverse`

* test: add `print_reverse` test

Fix doctest syntax and remove edge case tests that are covered
by typed arguments.

Add `print_reverse` test that expects the correct values are printed
out by adding a `test_print_reverse_output` helper function.

* format code

Co-authored-by: shellhub <shellhub.me@gmail.com>
2020-10-05 19:08:57 +08:00
Du Yuanchao
437c725e64
Fixed allocation_number (#2768)
* fixed allocation_number

* fixed pre-commit

* fixed line too long

* fixed bug
2020-10-05 09:17:46 +05:30
Iqrar Agalosi Nureyza
e040ad2a01
Add a solution for Project Euler 49 (#2702)
* added doctests in modular_exponential.py

* added doctests in modular_exponential.py

* added URL link

* updating DIRECTORY.md

* Add problem 49 solution

* updating DIRECTORY.md

* Fix several mistakes

These fixes are intended to follow the CONTRIBUTING.md

* Move the import statements lower

* Update project_euler/problem_49/sol1.py

Co-authored-by: Dhruv <dhruvmanila@gmail.com>

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Dhruv <dhruvmanila@gmail.com>
2020-10-05 08:27:09 +05:30
Dhruv
b934da4516
Fix pre-commit error in GitHub action file (#2765) 2020-10-04 21:16:13 +05:30
Sabari Ganesh
fb9b9ecccf
Update area.py (#2524)
* Update area.py

Added Area for Rhombhus

* Update area.py

Added rhombhus area. And fixed some gaps error.

* Update area.py

Added Rhombhus area.

* Update area.py

Fixed suggested changes
2020-10-04 22:20:47 +08:00
Richard Wheatley
3b0169549e
Create auto_close_empty_issues.yml (#2756)
* Create auto_close_empty_issues.yml

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-04 16:20:36 +02:00
Sabari Ganesh
e9865ae611
Update temperature_conversions.py (#2522)
* Update temperature_conversions.py

Added Reaumur scale unit conversions.

* Update temperature_conversions.py

* Update temperature_conversions.py
2020-10-03 22:02:58 +05:30
Du Yuanchao
43f92490fe
Update insert sort (#2493)
* delete duplicate file
update insert sort

* rename

* fixed error

* using enumerate()
2020-10-03 20:49:08 +05:30
Kushagra Bansal
6a395456ee
Created problem_112.py in project_euler (#2532)
* Add files via upload

* Create __init__.py

* Update and rename project_euler/problem_112.py to project_euler/problem_112/sol1.py

* Update project_euler/problem_112/sol1.py

Co-authored-by: Dhruv <dhruvmanila@gmail.com>

* Update sol1.py

* Update sol1.py

* Update project_euler/problem_112/sol1.py

Co-authored-by: Du Yuanchao <shellhub.me@gmail.com>

* Update project_euler/problem_112/__init__.py

Co-authored-by: Du Yuanchao <shellhub.me@gmail.com>

* Update __init__.py

* Update __init__.py

* Update __init__.py

* delete __init__.py content

Co-authored-by: Dhruv <dhruvmanila@gmail.com>
Co-authored-by: Du Yuanchao <shellhub.me@gmail.com>
2020-10-03 16:38:56 +08:00
Dmytro Litvinov
5903948cf3
Fixes: #2404. Fix PIL DeprecationWarnings in pytest output (#2678) 2020-10-03 09:22:22 +02:00
Du Yuanchao
9b3f7c36d0
Test random input for bubble sort (#2492) 2020-10-02 13:55:58 +08:00
Eugeniy Orlov
2388bf4e17
Add type hints to strings/min_cost_string_conversion.py (#2337)
* done

* add types for local variables

* Revert "add types for local variables"

This reverts commit 971c15673b.

* rename variables

* Update strings/min_cost_string_conversion.py

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

* rename strings

* use flake8

* Update strings/min_cost_string_conversion.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-10-01 09:04:31 +08:00
Du Yuanchao
2fa009aa53
Fix bucket sort (#2494)
* fixed bucket sort

* delete blank line
2020-10-01 08:53:42 +08:00
Christian Clauss
ddfa9e4f22
Travis CI: Remove redundant tests (#2523)
* Travis CI: Remove redundant tests

* fixup! before_script

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-30 19:26:38 +02:00
Dhruv
7a502708e0
Add badges for code style and pre-commit in README.md (#2516)
* Add badges for code style and pre-commit

* Update badge style to flat-square

* Update Gitpod logo style to flat-square
2020-09-30 16:40:20 +02:00
Dhruv
acaeb22bbd
Add GitHub action for pre-commit (#2515)
* Add GitHub action file for pre-commit

* Fix errors exposed by pre-commit hook:

- Remove executable bit from files without shebang. I checked those
  file and it was not needed.
- Fix with black

* Apply suggestions from code review

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

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-30 15:23:34 +02:00
Dhruv
ae65f55de3
Add pre-commit hook for TheAlgorithms/Python (#2511)
* Add pre-commit basic config file

* Add pre-commit to requirements.txt

* Small tweaks and use stable for black

* Fix isort section in pre-commit-config file

* Fix errors and EOF only for Python files
2020-09-30 10:39:14 +02:00
Dhruv
0a42ae9095
Fix all errors mentioned in pre-commit run (#2512)
* Fix all errors mentioned in pre-commit run:

- Fix end of file
- Remove trailing whitespace
- Fix files with black
- Fix imports with isort

* Fix errors
2020-09-30 10:38:00 +02:00
YOGESHWARAN R
e6e2dc69d5
Create instagram_crawler.py (#2509)
* Create instagram_crawler.py

* codespell --ignore-words-list=followings

* Update web_programming/instagram_crawler.py

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

* Update web_programming/instagram_crawler.py

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

* Update web_programming/instagram_crawler.py

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

* Update web_programming/instagram_crawler.py

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

* Update web_programming/instagram_crawler.py

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

* Update web_programming/instagram_crawler.py

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

* Update web_programming/instagram_crawler.py

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

* Update instagram_crawler.py

* Add doctests

* fixup! except (json.decoder.JSONDecodeError, KeyError):

* if getenv("CONTINUOUS_INTEGRATION"): return

* Update instagram_crawler.py

* Update web_programming/instagram_crawler.py

Co-authored-by: Dhruv <dhruvmanila@gmail.com>

* added fake_useragent

* Update instagram_crawler.py

* Comment out doctests

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: Dhruv <dhruvmanila@gmail.com>
2020-09-29 18:04:55 +02:00
Lewis Tian
e166350509
Update sorts/quick_sort_3_partition.py (#2507)
* Update sorts/quick_sort_3partition.py

Another quick sort algorithm, returns a new sorted list

* Update sorts/quick_sort_3_partition.py

rename quick_sort_3partition to quick_sort_3part

* Update sorts/quick_sort_3_partition.py

rename quick_sort_3part to three_way_radix_quicksort
Three-way radix quicksort:
https://en.wikipedia.org/wiki/Quicksort#Three-way_radix_quicksort
First divide the list into three parts.
Then recursively sort the "less than" and "greater than" partitions.

* Update sorts/quick_sort_3_partition.py

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

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-29 13:55:48 +02:00
Guillaume Rochedix
d95d643351
Heaps algorithm (#2475)
* heaps_algorithm: new algo

* typo

* correction doctest

* doctests: compare with itertools.permutations

* doctest: sorted instead of set

* doctest

* doctest

* rebuild
2020-09-29 12:39:07 +02:00
Guillaume Rochedix
04322e67e5
Heaps algorithm iterative (#2505)
* heap's algorithm iterative

* doctest

* doctest

* rebuild
2020-09-29 12:38:12 +02:00
Dhruv
9016fe192f
Fix imports for all namespace packages (#2506)
* Fix imports as they're namespace packages

* Fix import for scripts/validate_filenames.py

* Fix path in doctest
2020-09-28 23:41:04 +02:00
Dhruv
48357cea5b
Add __init__.py files in all the directories (#2503) 2020-09-28 19:42:36 +02:00
Lewis Tian
121dddc7f2
Update maths/area.py (#2501)
the parameters of geometric shapes should be non-negative values
2020-09-28 22:40:47 +08:00
xcodz-dot
1b637ba8ed
Create vector3_for_2d_rendering.py (#2496)
* Create vector3_for_2d_rendering.py

Edited for passing travis test

* Delete vector3_for_2d_rendering.py

* Create vector3_for_2d_rendering.py

* Update vector3_for_2d_rendering.py

Compressed the line 19 to 28 into 19 to 21

* Update vector3_for_2d_rendering.py

* Update vector3_for_2d_rendering.py

* Update vector3_for_2d_rendering.py

completly corrected pep8 errors using Pycharm IDE

* Update vector3_for_2d_rendering.py

* Update graphics/vector3_for_2d_rendering.py

Co-authored-by: Dhruv <dhruvmanila@gmail.com>

* Update graphics/vector3_for_2d_rendering.py

Co-authored-by: Dhruv <dhruvmanila@gmail.com>

* Update graphics/vector3_for_2d_rendering.py

Co-authored-by: Dhruv <dhruvmanila@gmail.com>

* Update vector3_for_2d_rendering.py

* Update vector3_for_2d_rendering.py

* Update graphics/vector3_for_2d_rendering.py

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

* Update graphics/vector3_for_2d_rendering.py

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

* Apply suggestions from code review

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

* Update vector3_for_2d_rendering.py

Added A few extra names to __author__ 😄

* Update vector3_for_2d_rendering.py

Used Pycharm to fix PEP8 errors, doctest errors

* Update vector3_for_2d_rendering.py

Added enough doctests

* Update graphics/vector3_for_2d_rendering.py

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

* Remove second main()

Co-authored-by: Dhruv <dhruvmanila@gmail.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-28 11:43:34 +02:00
Dhruv
ceacfc6079
Add algorithm for testing Project Euler solutions (#2471)
* Add file for testing Project Euler solutions

* Remove the importlib import

* Update project_euler/solution_test.py

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

* Small tweaks to project_euler/solution_test.py

* Test Project Euler solutions through Travis

* Improved testing for Project Euler solutions:

- Renamed file so that it isn't picked up by pytest
- Fail fast on validating solutions through Travis CI

* Update validate_solutions.py

* Use namedtuple for input parameters and answer

- Remove logging
- Remove unnecessary checks for PROJECT_EULER_PATH as Travis CI
  picks up the same path

* Fix flake8 errors: line too long

* Small tweaks to validate_solutions.py

* Add all answers & back to using dictionary

* Using pytest for testing Project Euler solutions

- As we want to fail fast on testing solutions, we need to test using
  this script first before we use tests written by the author.
- As pytest stops testing as soon as it receives a traceback, we need to
  use pytest-subtests to tell pytest to test all the iterations for the
  function with given parameters.

* Print error messages in oneline format

* Separated answers into a separate file:

- Add custom print function to print all the error messages at the
  end of all the tests
- Let Travis skip if this failed

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-28 08:18:19 +02:00
Dhruv
187e8ccc95
Small fix (#2498) 2020-09-27 15:05:09 +02:00
Du Yuanchao
8904af98a1
Optimization for pangram string (#2473)
* optimization for pangram string

* fixup! Format Python code with psf/black push

* Update strings/check_pangram.py

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

* updating DIRECTORY.md

* Update strings/check_pangram.py

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-26 22:58:59 +08:00
Abdoulaye Balde
7446e69571
Gradient Boosting Regressor (#2298)
* Stock market prediction using greadient boosting

* To reverse a string using stack

* To reverse string using stack

* Predict Stock Prices Python & Machine Learning

* Gradient boosting regressor on boston dataset

* Gradient boosting regressor implementation

* Gradient boosting regressor

* Gradient boosting regressor

* Gradient boosting regressor

* Removing files

* GradientBoostingRegressor example

* Demo Gradient Boosting

* Demo Gradient boosting

* demo of gradient boosting

* gradient boosting demo

* Fix spelling mistake

* Fix formatting

Co-authored-by: John Law <johnlaw.po@gmail.com>
2020-09-26 16:58:29 +02:00
Du Yuanchao
7f48bb8c95
Updated circular_linked_list (#2483)
* Updated circular_linked_list

* fixup! Format Python code with psf/black push

* Update data_structures/linked_list/circular_linked_list.py

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

* updating DIRECTORY.md

* delete print_list()

* test is_empty()

* test is_empty return False

* fixup! Format Python code with psf/black push

* fixed indentation

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-26 22:57:09 +08:00
Christian Clauss
db0db01d87
Use self-documenting option instead of cryptic option (#2487)
* Use self-documenting option instead of cryptic option

@mateuszz0000 Your review, please.  Pretend that you do not know what `-L` stands for.  How many keystrokes and clicks does it take to confirm the purpose of this option?

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-26 16:54:41 +02:00
Du Yuanchao
72fe611462
Updated lower and upper (#2468)
* update lower and upper

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-26 01:58:40 +08:00
Thomas Voss
e92cd9d5c5
Update morse_code_implementation.py (#2386)
* Update morse_code_implementation.py

Added more characters to MORSE_CODE_DICT for a more complete dictionary.
Split words with "/" instead of a space as is standard.
Fixed bug when encrypting a message with a comma.

* Fixed comment typo
2020-09-25 19:03:15 +02:00
Du Yuanchao
b81fcef66b
Fixed linked list bug (#2481)
* * fixed __getitem__() function
* add test

* * updated doctests
* updated __setitem__() func

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-25 18:08:57 +02:00
Du Yuanchao
18f1dcd48a
Updated singly_linked_list (#2477)
* Updated singly_linked_list

* fixup! Format Python code with psf/black push

* undo __repr__

* updating DIRECTORY.md

* UNTESTED CHANGES: Add an .__iter__() method.

This will break tests, etc.

* fixup! Format Python code with psf/black push

* len(tuple(iter(self)))

* fixed __repr__()

* Update data_structures/linked_list/singly_linked_list.py

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

* Update data_structures/linked_list/singly_linked_list.py

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

* Update data_structures/linked_list/singly_linked_list.py

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

* Update data_structures/linked_list/singly_linked_list.py

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

* Update data_structures/linked_list/singly_linked_list.py

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

* Update data_structures/linked_list/singly_linked_list.py

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

* Update data_structures/linked_list/singly_linked_list.py

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

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-25 16:09:29 +02:00
Du Yuanchao
a196a36514
Fixed bugs (#2474)
* fixed bug

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-25 15:20:09 +02:00
Abdujabbar Mirkhalikov
53c2a24587
added type hints and doctests for minimax algorithm (#2478)
* added type hints and doctests for minimax algorithm

* Update backtracking/minimax.py

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

* last fix

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-25 15:16:05 +02:00
Kushagra Bansal
daa1b4d70f
Created problem_97 in project euler (#2476)
* Create __init__.py

* Add files via upload

* Update sol1.py

* Update sol1.py

* Update sol1.py

* Update project_euler/problem_97/sol1.py

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

* Update sol1.py

* Update project_euler/problem_97/sol1.py

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

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-25 11:52:19 +02:00
Guillaume Rochedix
f564c9d7c6
Wiggle sort (#2419)
* wiggle sort : type hint + doctest

* fixed function name in docstring

* correction
2020-09-25 09:18:00 +02:00
Dhruv
08eb1efafe
Add solution() for problem 54 of Project Euler (#2472)
* Add solution() for problem 54 of Project Euler

* Add type hints for solution() function
2020-09-24 15:16:55 +02:00
Du Yuanchao
3a275caf01
Fixed remove duplicate (#2470)
* fixed remove duplicate

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-24 19:14:52 +08:00
Du Yuanchao
902fe1c907
Fixed reverse words algorithm (#2469)
* updated reversed words

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-24 19:12:52 +08:00
Vivek
4a3b8d682e
Added binary_xor_operator.py and binary_and_operator.py (#2433)
* Added binary_and_operator.py & binary_xor_operator.py

* Updated binary_and_operator.py

* Updated binary_xor_operator.py

* Updated binary_xor_operator.py
2020-09-24 09:30:22 +02:00
spamegg
5f9be0a613
Add Python type hints and doctests to other/two_sum.py (#2467)
* Add Python type hints and doctests to other/two_sum.py

#2465

* Update other/two_sum.py

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

* Update other/two_sum.py

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

* Update two_sum.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-23 21:55:51 +02:00
Christian Clauss
9200a2e543
from __future__ import annotations (#2464)
* from __future__ import annotations

* fixup! from __future__ import annotations

* fixup! from __future__ import annotations

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-23 13:30:13 +02:00
Dhruv
6e6a49d19f
Config Travis CI for two jobs (#2463)
* Testing Travis CI configuration for project Euler

* Fix: Installing mypy and pytest-cov for testing

* Remove unnecessary checks for project_euler job

* Removing branches section

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-23 13:24:32 +02:00
Du Yuanchao
a1ea76bcf3
Optimization problem_10 in project_euler (#2453)
* optimization for problem09 in project_euler

* added benchmark code

* fixup! Format Python code with psf/black push

* Update project_euler/problem_09/sol1.py

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

* updating DIRECTORY.md

* Update project_euler/problem_09/sol1.py

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-22 15:15:11 +02:00
Abhinav Anand
718be54dbb
Update sol1.py (#2455) 2020-09-20 21:33:26 +02:00