diff --git a/algorithms/Python/README.md b/algorithms/Python/README.md index ec9510de..6d8e71fc 100644 --- a/algorithms/Python/README.md +++ b/algorithms/Python/README.md @@ -1,28 +1,34 @@ # Python ## Arrays + 1. [Count Inversions](arrays/counting_inversions.py) 2. [Majority Element](arrays/majority_element.py) 3. [Rotate Array](arrays/rotate_array.py) 4. [Missing Number](arrays/missing_number.py) ## Linked Lists + 1. [Doubly](linked_lists/doubly.py) 2. [Singly](linked_lists/singly.py) - + ## Multiplication + 1. [Karatsuba](multiplication/karatsuba.py) - + ## Scheduling + 1. [Interval Scheduling](scheduling/interval_scheduling.py) - + ## Searching + 1. [Binary Search](searching/binary_search.py) 2. [Jump Search](searching/jump_search.py) 3. [Linear Search](searching/linear_search.py) 4. [Ternary Search](searching/ternary_search.py) - + ## Sorting + 1. [Bubble Sort](sorting/bubble_sort.py) 2. [Comb Sort](sorting/comb_sort.py) 3. [Insertion Sort](sorting/insertion_sort.py) @@ -31,8 +37,9 @@ 6. [Heap Sort](sorting/heap-sort.py) 7. [Radix Sort](sorting/radix-sort.py) 8. [Shell Sort](sorting/shell-sort.py) - + ## Strings + 1. [Is Good Str](strings/is_good_str.py) 2. [Palindrome](strings/palindrome.py) 3. [Word Count](strings/word_count.py) @@ -41,7 +48,8 @@ 6. [Longest Common Subsequence](strings/longest_common_subsequence.py) ## Dynamic Programming -1. [Print Fibonacci Series Up To N-th Term](dynamic_programming/fibonacci_series.py) -2. [Sum Up To N-th Term Of Fibonacci Series](dynamic_programming/fibonacci_series_sum.py ) -3. [N-th Term Of Fibonacci Series](dynamic_programming/fibonacci_series_nth_term.py) +1. [Print Fibonacci Series Up To N-th Term](dynamic_programming/fibonacci_series.py) +2. [Sum Up To N-th Term Of Fibonacci Series](dynamic_programming/fibonacci_series_sum.py) +3. [N-th Term Of Fibonacci Series](dynamic_programming/fibonacci_series_nth_term.py) +4. [Catlan Sequence](dynamic_programming/cataln_sequence.py) diff --git a/algorithms/Python/dynamic_programming/catalan_sequence.py b/algorithms/Python/dynamic_programming/catalan_sequence.py new file mode 100644 index 00000000..b70188dc --- /dev/null +++ b/algorithms/Python/dynamic_programming/catalan_sequence.py @@ -0,0 +1,37 @@ +# A dynamic programming based function to find nth +# Catalan number + +""" +Output: +The first 10 terms of Catalan sequence are : +1 1 2 5 14 42 132 429 1430 4862 +""" + + +def catalan(n): + # Base Case + if n == 0 or n == 1: + return 1 + + # To store the result of subproblems + + cat_num = [0] * (n + 1) + + cat_num[0] = 1 + cat_num[1] = 1 + + for i in range(2, n + 1): + for j in range(i): + cat_num[i] += cat_num[j] * cat_num[i - j - 1] + return cat_num[n] + + +n = 10 + +if n<0: + print("Please add a valid number") + exit() + +print(f"The first {n} terms of Catalan sequence are : ") +for i in range(n): + print(catalan(i), end=" ")