jugaadcode 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- jugaadcode/__init__.py +51 -0
- jugaadcode/anagram.py +12 -0
- jugaadcode/armstrong.py +11 -0
- jugaadcode/binary_search.py +27 -0
- jugaadcode/bubble_sort.py +21 -0
- jugaadcode/capitalize_words.py +6 -0
- jugaadcode/character_frequency.py +13 -0
- jugaadcode/climbing_stairs.py +16 -0
- jugaadcode/coin_change.py +29 -0
- jugaadcode/count_vowels.py +15 -0
- jugaadcode/counting_sort.py +26 -0
- jugaadcode/duplicate_number.py +17 -0
- jugaadcode/even_odd.py +6 -0
- jugaadcode/factorial.py +14 -0
- jugaadcode/factorial_trailing_zeros_direct.py +20 -0
- jugaadcode/factorial_with_trailing_zeros.py +29 -0
- jugaadcode/fibonacci.py +20 -0
- jugaadcode/find_max.py +15 -0
- jugaadcode/find_min.py +15 -0
- jugaadcode/first_non_repeating.py +18 -0
- jugaadcode/gcd.py +12 -0
- jugaadcode/harshad_number.py +11 -0
- jugaadcode/input_utils.py +50 -0
- jugaadcode/insertion_sort.py +24 -0
- jugaadcode/kth_largest.py +16 -0
- jugaadcode/lcm.py +18 -0
- jugaadcode/linear_search.py +16 -0
- jugaadcode/longest_consecutive.py +22 -0
- jugaadcode/longest_word.py +18 -0
- jugaadcode/matrix_transpose.py +42 -0
- jugaadcode/maximum_subarray.py +26 -0
- jugaadcode/merge_sort.py +36 -0
- jugaadcode/move_zeros.py +21 -0
- jugaadcode/pair_with_difference.py +21 -0
- jugaadcode/palindrome.py +8 -0
- jugaadcode/perfect_number.py +19 -0
- jugaadcode/power.py +15 -0
- jugaadcode/prime.py +14 -0
- jugaadcode/quick_sort.py +29 -0
- jugaadcode/remove_duplicates_array.py +15 -0
- jugaadcode/remove_duplicates_string.py +13 -0
- jugaadcode/reverse_linked_list.py +38 -0
- jugaadcode/reverse_number.py +8 -0
- jugaadcode/reverse_string.py +6 -0
- jugaadcode/second_largest.py +25 -0
- jugaadcode/selection_sort.py +24 -0
- jugaadcode/strong_number.py +14 -0
- jugaadcode/subsequence.py +16 -0
- jugaadcode/sum_of_digits.py +6 -0
- jugaadcode/trailing_zeros.py +14 -0
- jugaadcode/two_sum.py +22 -0
- jugaadcode/valid_parentheses.py +28 -0
- jugaadcode/word_count.py +6 -0
- jugaadcode-0.1.0.dist-info/METADATA +17 -0
- jugaadcode-0.1.0.dist-info/RECORD +57 -0
- jugaadcode-0.1.0.dist-info/WHEEL +5 -0
- jugaadcode-0.1.0.dist-info/top_level.txt +1 -0
jugaadcode/__init__.py
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from .prime import is_prime
|
|
2
|
+
from .factorial import factorial
|
|
3
|
+
from .fibonacci import fibonacci
|
|
4
|
+
from .palindrome import is_palindrome
|
|
5
|
+
from .armstrong import is_armstrong
|
|
6
|
+
from .reverse_number import reverse_number
|
|
7
|
+
from .sum_of_digits import sum_of_digits
|
|
8
|
+
from .perfect_number import is_perfect_number
|
|
9
|
+
from .strong_number import is_strong_number
|
|
10
|
+
from .harshad_number import is_harshad_number
|
|
11
|
+
from .gcd import gcd
|
|
12
|
+
from .lcm import lcm
|
|
13
|
+
from .even_odd import is_even
|
|
14
|
+
from .reverse_string import reverse_string
|
|
15
|
+
from .count_vowels import count_vowels
|
|
16
|
+
from .character_frequency import character_frequency
|
|
17
|
+
from .anagram import is_anagram
|
|
18
|
+
from .remove_duplicates_string import remove_duplicate_characters
|
|
19
|
+
from .first_non_repeating import first_non_repeating
|
|
20
|
+
from .word_count import word_count
|
|
21
|
+
from .capitalize_words import capitalize_words
|
|
22
|
+
from .longest_word import longest_word
|
|
23
|
+
from .subsequence import is_subsequence
|
|
24
|
+
from .find_max import find_max
|
|
25
|
+
from .find_min import find_min
|
|
26
|
+
from .second_largest import second_largest
|
|
27
|
+
from .remove_duplicates_array import remove_duplicates
|
|
28
|
+
from .duplicate_number import find_duplicate
|
|
29
|
+
from .two_sum import two_sum
|
|
30
|
+
from .move_zeros import move_zeros
|
|
31
|
+
from .linear_search import linear_search
|
|
32
|
+
from .binary_search import binary_search
|
|
33
|
+
from .bubble_sort import bubble_sort
|
|
34
|
+
from .selection_sort import selection_sort
|
|
35
|
+
from .insertion_sort import insertion_sort
|
|
36
|
+
from .merge_sort import merge_sort
|
|
37
|
+
from .quick_sort import quick_sort
|
|
38
|
+
from .counting_sort import counting_sort
|
|
39
|
+
from .kth_largest import kth_largest
|
|
40
|
+
from .power import power
|
|
41
|
+
from .maximum_subarray import maximum_subarray
|
|
42
|
+
from .climbing_stairs import climbing_stairs
|
|
43
|
+
from .coin_change import coin_change
|
|
44
|
+
from .valid_parentheses import valid_parentheses
|
|
45
|
+
from .matrix_transpose import matrix_transpose
|
|
46
|
+
from .reverse_linked_list import reverse_linked_list
|
|
47
|
+
from .longest_consecutive import longest_consecutive
|
|
48
|
+
from .pair_with_difference import pair_with_difference
|
|
49
|
+
from .trailing_zeros import trailing_zeros
|
|
50
|
+
from .factorial_with_trailing_zeros import factorial_with_trailing_zeros
|
|
51
|
+
from .factorial_trailing_zeros_direct import factorial_trailing_zeros_direct
|
jugaadcode/anagram.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
def is_anagram(first=None, second=None):
|
|
2
|
+
|
|
3
|
+
if first is None:
|
|
4
|
+
first = input("Enter first string to check if it is an anagram: ")
|
|
5
|
+
|
|
6
|
+
if second is None:
|
|
7
|
+
second = input("Enter second string to check if it is an anagram: ")
|
|
8
|
+
|
|
9
|
+
first = first.replace(" ", "").lower()
|
|
10
|
+
second = second.replace(" ", "").lower()
|
|
11
|
+
|
|
12
|
+
return sorted(first) == sorted(second)
|
jugaadcode/armstrong.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
def binary_search(numbers=None, target=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter SORTED numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if target is None:
|
|
9
|
+
target = int(input("Enter target: "))
|
|
10
|
+
|
|
11
|
+
left = 0
|
|
12
|
+
right = len(numbers) - 1
|
|
13
|
+
|
|
14
|
+
while left <= right:
|
|
15
|
+
|
|
16
|
+
middle = (left + right) // 2
|
|
17
|
+
|
|
18
|
+
if numbers[middle] == target:
|
|
19
|
+
return middle
|
|
20
|
+
|
|
21
|
+
if numbers[middle] < target:
|
|
22
|
+
left = middle + 1
|
|
23
|
+
|
|
24
|
+
else:
|
|
25
|
+
right = middle - 1
|
|
26
|
+
|
|
27
|
+
return -1
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
def bubble_sort(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
numbers = numbers.copy()
|
|
9
|
+
|
|
10
|
+
for i in range(len(numbers)):
|
|
11
|
+
|
|
12
|
+
for j in range(len(numbers) - i - 1):
|
|
13
|
+
|
|
14
|
+
if numbers[j] > numbers[j + 1]:
|
|
15
|
+
|
|
16
|
+
numbers[j], numbers[j + 1] = (
|
|
17
|
+
numbers[j + 1],
|
|
18
|
+
numbers[j]
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
return numbers
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
def character_frequency(text=None):
|
|
2
|
+
|
|
3
|
+
if text is None:
|
|
4
|
+
text = input("Enter a string to analyze character frequency: ")
|
|
5
|
+
|
|
6
|
+
frequency = {}
|
|
7
|
+
|
|
8
|
+
for character in text:
|
|
9
|
+
|
|
10
|
+
if character != " ":
|
|
11
|
+
frequency[character] = frequency.get(character, 0) + 1
|
|
12
|
+
|
|
13
|
+
return frequency
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
def coin_change(coins=None, amount=None):
|
|
2
|
+
|
|
3
|
+
if coins is None:
|
|
4
|
+
coins = list(
|
|
5
|
+
map(int, input("Enter coin values separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if amount is None:
|
|
9
|
+
amount = int(input("Enter amount: "))
|
|
10
|
+
|
|
11
|
+
dp = [float("inf")] * (amount + 1)
|
|
12
|
+
|
|
13
|
+
dp[0] = 0
|
|
14
|
+
|
|
15
|
+
for current in range(1, amount + 1):
|
|
16
|
+
|
|
17
|
+
for coin in coins:
|
|
18
|
+
|
|
19
|
+
if coin <= current:
|
|
20
|
+
|
|
21
|
+
dp[current] = min(
|
|
22
|
+
dp[current],
|
|
23
|
+
dp[current - coin] + 1
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
if dp[amount] == float("inf"):
|
|
27
|
+
return -1
|
|
28
|
+
|
|
29
|
+
return dp[amount]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
def counting_sort(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter non-negative numbers: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if not numbers:
|
|
9
|
+
return []
|
|
10
|
+
|
|
11
|
+
if min(numbers) < 0:
|
|
12
|
+
raise ValueError("Only non-negative numbers are supported")
|
|
13
|
+
|
|
14
|
+
count = [0] * (max(numbers) + 1)
|
|
15
|
+
|
|
16
|
+
for number in numbers:
|
|
17
|
+
count[number] += 1
|
|
18
|
+
|
|
19
|
+
result = []
|
|
20
|
+
|
|
21
|
+
for number in range(len(count)):
|
|
22
|
+
|
|
23
|
+
for _ in range(count[number]):
|
|
24
|
+
result.append(number)
|
|
25
|
+
|
|
26
|
+
return result
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
def find_duplicate(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
seen = set()
|
|
9
|
+
|
|
10
|
+
for number in numbers:
|
|
11
|
+
|
|
12
|
+
if number in seen:
|
|
13
|
+
return number
|
|
14
|
+
|
|
15
|
+
seen.add(number)
|
|
16
|
+
|
|
17
|
+
return None
|
jugaadcode/even_odd.py
ADDED
jugaadcode/factorial.py
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
def factorial_trailing_zeros_direct(n=None):
|
|
2
|
+
if n is None:
|
|
3
|
+
n = int(input("Enter a number: "))
|
|
4
|
+
|
|
5
|
+
if n < 0:
|
|
6
|
+
raise ValueError("Number must be non-negative")
|
|
7
|
+
|
|
8
|
+
factorial = 1
|
|
9
|
+
|
|
10
|
+
for i in range(1, n + 1):
|
|
11
|
+
factorial *= i
|
|
12
|
+
|
|
13
|
+
number = factorial
|
|
14
|
+
count = 0
|
|
15
|
+
|
|
16
|
+
while number > 0 and number % 10 == 0:
|
|
17
|
+
count += 1
|
|
18
|
+
number //= 10
|
|
19
|
+
|
|
20
|
+
return factorial, count
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
def trailing_zeros(n):
|
|
2
|
+
count = 0
|
|
3
|
+
|
|
4
|
+
while n > 0:
|
|
5
|
+
n //= 5
|
|
6
|
+
count += n
|
|
7
|
+
|
|
8
|
+
return count
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def factorial_with_trailing_zeros(zeros=None):
|
|
12
|
+
if zeros is None:
|
|
13
|
+
zeros = int(input("Enter required number of trailing zeros: "))
|
|
14
|
+
|
|
15
|
+
if zeros < 0:
|
|
16
|
+
raise ValueError("Number of trailing zeros must be non-negative")
|
|
17
|
+
|
|
18
|
+
n = 1
|
|
19
|
+
|
|
20
|
+
while True:
|
|
21
|
+
count = trailing_zeros(n)
|
|
22
|
+
|
|
23
|
+
if count == zeros:
|
|
24
|
+
return n
|
|
25
|
+
|
|
26
|
+
if count > zeros:
|
|
27
|
+
return None
|
|
28
|
+
|
|
29
|
+
n += 1
|
jugaadcode/fibonacci.py
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
def fibonacci(n=None):
|
|
2
|
+
|
|
3
|
+
if n is None:
|
|
4
|
+
n = int(input("How many Fibonacci numbers? "))
|
|
5
|
+
|
|
6
|
+
if n < 0:
|
|
7
|
+
raise ValueError("Number must be non-negative")
|
|
8
|
+
|
|
9
|
+
result = []
|
|
10
|
+
|
|
11
|
+
a = 0
|
|
12
|
+
b = 1
|
|
13
|
+
|
|
14
|
+
for _ in range(n):
|
|
15
|
+
|
|
16
|
+
result.append(a)
|
|
17
|
+
|
|
18
|
+
a, b = b, a + b
|
|
19
|
+
|
|
20
|
+
return result
|
jugaadcode/find_max.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
def find_max(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
maximum = numbers[0]
|
|
9
|
+
|
|
10
|
+
for number in numbers:
|
|
11
|
+
|
|
12
|
+
if number > maximum:
|
|
13
|
+
maximum = number
|
|
14
|
+
|
|
15
|
+
return maximum
|
jugaadcode/find_min.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
def find_min(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
minimum = numbers[0]
|
|
9
|
+
|
|
10
|
+
for number in numbers:
|
|
11
|
+
|
|
12
|
+
if number < minimum:
|
|
13
|
+
minimum = number
|
|
14
|
+
|
|
15
|
+
return minimum
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
def first_non_repeating(text=None):
|
|
2
|
+
|
|
3
|
+
if text is None:
|
|
4
|
+
text = input("Enter a string to find the first non-repeating character: ")
|
|
5
|
+
|
|
6
|
+
frequency = {}
|
|
7
|
+
|
|
8
|
+
for character in text:
|
|
9
|
+
|
|
10
|
+
if character != " ":
|
|
11
|
+
frequency[character] = frequency.get(character, 0) + 1
|
|
12
|
+
|
|
13
|
+
for character in text:
|
|
14
|
+
|
|
15
|
+
if character != " " and frequency[character] == 1:
|
|
16
|
+
return character
|
|
17
|
+
|
|
18
|
+
return None
|
jugaadcode/gcd.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
def get_number(message="Enter a number: "):
|
|
2
|
+
return int(input(message))
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def get_numbers(message="Enter numbers separated by spaces: "):
|
|
6
|
+
return list(map(int, input(message).split()))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def get_text(message="Enter text: "):
|
|
10
|
+
return input(message)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def get_target(message="Enter target: "):
|
|
14
|
+
return int(input(message))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def get_k(message="Enter k: "):
|
|
18
|
+
return int(input(message))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def get_difference(message="Enter difference: "):
|
|
22
|
+
return int(input(message))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def get_amount(message="Enter amount: "):
|
|
26
|
+
return int(input(message))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def get_rows(message="Enter number of rows: "):
|
|
30
|
+
return int(input(message))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def get_columns(message="Enter number of columns: "):
|
|
34
|
+
return int(input(message))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def get_first_number(message="Enter first number: "):
|
|
38
|
+
return int(input(message))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def get_second_number(message="Enter second number: "):
|
|
42
|
+
return int(input(message))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def get_first_text(message="Enter first string: "):
|
|
46
|
+
return input(message)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def get_second_text(message="Enter second string: "):
|
|
50
|
+
return input(message)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
def insertion_sort(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
numbers = numbers.copy()
|
|
9
|
+
|
|
10
|
+
for i in range(1, len(numbers)):
|
|
11
|
+
|
|
12
|
+
current = numbers[i]
|
|
13
|
+
|
|
14
|
+
j = i - 1
|
|
15
|
+
|
|
16
|
+
while j >= 0 and numbers[j] > current:
|
|
17
|
+
|
|
18
|
+
numbers[j + 1] = numbers[j]
|
|
19
|
+
|
|
20
|
+
j -= 1
|
|
21
|
+
|
|
22
|
+
numbers[j + 1] = current
|
|
23
|
+
|
|
24
|
+
return numbers
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
def kth_largest(numbers=None, k=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if k is None:
|
|
9
|
+
k = int(input("Enter k: "))
|
|
10
|
+
|
|
11
|
+
if k < 1 or k > len(numbers):
|
|
12
|
+
raise ValueError("Invalid k")
|
|
13
|
+
|
|
14
|
+
sorted_numbers = sorted(numbers, reverse=True)
|
|
15
|
+
|
|
16
|
+
return sorted_numbers[k - 1]
|
jugaadcode/lcm.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
def lcm(a=None, b=None):
|
|
2
|
+
|
|
3
|
+
if a is None:
|
|
4
|
+
a = int(input("Enter first number of LCM: "))
|
|
5
|
+
|
|
6
|
+
if b is None:
|
|
7
|
+
b = int(input("Enter second number of LCM: "))
|
|
8
|
+
|
|
9
|
+
if a == 0 or b == 0:
|
|
10
|
+
return 0
|
|
11
|
+
|
|
12
|
+
x = abs(a)
|
|
13
|
+
y = abs(b)
|
|
14
|
+
|
|
15
|
+
while y:
|
|
16
|
+
x, y = y, x % y
|
|
17
|
+
|
|
18
|
+
return abs(a * b) // x
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
def linear_search(numbers=None, target=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if target is None:
|
|
9
|
+
target = int(input("Enter target: "))
|
|
10
|
+
|
|
11
|
+
for index, number in enumerate(numbers):
|
|
12
|
+
|
|
13
|
+
if number == target:
|
|
14
|
+
return index
|
|
15
|
+
|
|
16
|
+
return -1
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
def longest_consecutive(numbers=None):
|
|
2
|
+
if numbers is None:
|
|
3
|
+
numbers = list(
|
|
4
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
numbers = set(numbers)
|
|
8
|
+
longest = 0
|
|
9
|
+
|
|
10
|
+
for number in numbers:
|
|
11
|
+
|
|
12
|
+
if number - 1 not in numbers:
|
|
13
|
+
current = number
|
|
14
|
+
length = 1
|
|
15
|
+
|
|
16
|
+
while current + 1 in numbers:
|
|
17
|
+
current += 1
|
|
18
|
+
length += 1
|
|
19
|
+
|
|
20
|
+
longest = max(longest, length)
|
|
21
|
+
|
|
22
|
+
return longest
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
def longest_word(text=None):
|
|
2
|
+
|
|
3
|
+
if text is None:
|
|
4
|
+
text = input("Enter a sentence to find the longest word in: ")
|
|
5
|
+
|
|
6
|
+
words = text.split()
|
|
7
|
+
|
|
8
|
+
if not words:
|
|
9
|
+
return ""
|
|
10
|
+
|
|
11
|
+
longest = words[0]
|
|
12
|
+
|
|
13
|
+
for word in words:
|
|
14
|
+
|
|
15
|
+
if len(word) > len(longest):
|
|
16
|
+
longest = word
|
|
17
|
+
|
|
18
|
+
return longest
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
def matrix_transpose(matrix=None):
|
|
2
|
+
|
|
3
|
+
if matrix is None:
|
|
4
|
+
|
|
5
|
+
rows = int(input("Enter number of rows: "))
|
|
6
|
+
|
|
7
|
+
columns = int(input("Enter number of columns: "))
|
|
8
|
+
|
|
9
|
+
matrix = []
|
|
10
|
+
|
|
11
|
+
for i in range(rows):
|
|
12
|
+
|
|
13
|
+
row = list(
|
|
14
|
+
map(
|
|
15
|
+
int,
|
|
16
|
+
input(f"Enter row {i + 1}: ").split()
|
|
17
|
+
)
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
if len(row) != columns:
|
|
21
|
+
raise ValueError(
|
|
22
|
+
"Number of values does not match columns"
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
matrix.append(row)
|
|
26
|
+
|
|
27
|
+
if not matrix:
|
|
28
|
+
return []
|
|
29
|
+
|
|
30
|
+
result = []
|
|
31
|
+
|
|
32
|
+
for column in range(len(matrix[0])):
|
|
33
|
+
|
|
34
|
+
new_row = []
|
|
35
|
+
|
|
36
|
+
for row in range(len(matrix)):
|
|
37
|
+
|
|
38
|
+
new_row.append(matrix[row][column])
|
|
39
|
+
|
|
40
|
+
result.append(new_row)
|
|
41
|
+
|
|
42
|
+
return result
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
def maximum_subarray(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if not numbers:
|
|
9
|
+
return 0
|
|
10
|
+
|
|
11
|
+
current_sum = numbers[0]
|
|
12
|
+
maximum_sum = numbers[0]
|
|
13
|
+
|
|
14
|
+
for number in numbers[1:]:
|
|
15
|
+
|
|
16
|
+
current_sum = max(
|
|
17
|
+
number,
|
|
18
|
+
current_sum + number
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
maximum_sum = max(
|
|
22
|
+
maximum_sum,
|
|
23
|
+
current_sum
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
return maximum_sum
|
jugaadcode/merge_sort.py
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
def merge_sort(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if len(numbers) <= 1:
|
|
9
|
+
return numbers
|
|
10
|
+
|
|
11
|
+
middle = len(numbers) // 2
|
|
12
|
+
|
|
13
|
+
left = merge_sort(numbers[:middle])
|
|
14
|
+
right = merge_sort(numbers[middle:])
|
|
15
|
+
|
|
16
|
+
result = []
|
|
17
|
+
|
|
18
|
+
i = 0
|
|
19
|
+
j = 0
|
|
20
|
+
|
|
21
|
+
while i < len(left) and j < len(right):
|
|
22
|
+
|
|
23
|
+
if left[i] <= right[j]:
|
|
24
|
+
|
|
25
|
+
result.append(left[i])
|
|
26
|
+
i += 1
|
|
27
|
+
|
|
28
|
+
else:
|
|
29
|
+
|
|
30
|
+
result.append(right[j])
|
|
31
|
+
j += 1
|
|
32
|
+
|
|
33
|
+
result.extend(left[i:])
|
|
34
|
+
result.extend(right[j:])
|
|
35
|
+
|
|
36
|
+
return result
|
jugaadcode/move_zeros.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
def move_zeros(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
result = []
|
|
9
|
+
|
|
10
|
+
zero_count = 0
|
|
11
|
+
|
|
12
|
+
for number in numbers:
|
|
13
|
+
|
|
14
|
+
if number == 0:
|
|
15
|
+
zero_count += 1
|
|
16
|
+
else:
|
|
17
|
+
result.append(number)
|
|
18
|
+
|
|
19
|
+
result.extend([0] * zero_count)
|
|
20
|
+
|
|
21
|
+
return result
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
def pair_with_difference(numbers=None, difference=None):
|
|
2
|
+
if numbers is None:
|
|
3
|
+
numbers = list(
|
|
4
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
if difference is None:
|
|
8
|
+
difference = int(input("Enter difference: "))
|
|
9
|
+
|
|
10
|
+
seen = set()
|
|
11
|
+
|
|
12
|
+
for number in numbers:
|
|
13
|
+
if number - difference in seen:
|
|
14
|
+
return [number - difference, number]
|
|
15
|
+
|
|
16
|
+
if number + difference in seen:
|
|
17
|
+
return [number, number + difference]
|
|
18
|
+
|
|
19
|
+
seen.add(number)
|
|
20
|
+
|
|
21
|
+
return []
|
jugaadcode/palindrome.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
def is_perfect_number(n=None):
|
|
2
|
+
|
|
3
|
+
if n is None:
|
|
4
|
+
n = int(input("Enter a number to check if it is a perfect number: "))
|
|
5
|
+
|
|
6
|
+
if n <= 1:
|
|
7
|
+
return False
|
|
8
|
+
|
|
9
|
+
total = 1
|
|
10
|
+
|
|
11
|
+
for i in range(2, int(n ** 0.5) + 1):
|
|
12
|
+
|
|
13
|
+
if n % i == 0:
|
|
14
|
+
total += i
|
|
15
|
+
|
|
16
|
+
if i != n // i:
|
|
17
|
+
total += n // i
|
|
18
|
+
|
|
19
|
+
return total == n
|
jugaadcode/power.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
def power(base=None, exponent=None):
|
|
2
|
+
|
|
3
|
+
if base is None:
|
|
4
|
+
base = int(input("Enter base: "))
|
|
5
|
+
|
|
6
|
+
if exponent is None:
|
|
7
|
+
exponent = int(input("Enter exponent: "))
|
|
8
|
+
|
|
9
|
+
if exponent == 0:
|
|
10
|
+
return 1
|
|
11
|
+
|
|
12
|
+
if exponent < 0:
|
|
13
|
+
return 1 / power(base, -exponent)
|
|
14
|
+
|
|
15
|
+
return base * power(base, exponent - 1)
|
jugaadcode/prime.py
ADDED
jugaadcode/quick_sort.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
def quick_sort(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if len(numbers) <= 1:
|
|
9
|
+
return numbers
|
|
10
|
+
|
|
11
|
+
pivot = numbers[-1]
|
|
12
|
+
|
|
13
|
+
smaller = []
|
|
14
|
+
|
|
15
|
+
greater = []
|
|
16
|
+
|
|
17
|
+
for number in numbers[:-1]:
|
|
18
|
+
|
|
19
|
+
if number <= pivot:
|
|
20
|
+
smaller.append(number)
|
|
21
|
+
|
|
22
|
+
else:
|
|
23
|
+
greater.append(number)
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
quick_sort(smaller)
|
|
27
|
+
+ [pivot]
|
|
28
|
+
+ quick_sort(greater)
|
|
29
|
+
)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
def remove_duplicates(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
result = []
|
|
9
|
+
|
|
10
|
+
for number in numbers:
|
|
11
|
+
|
|
12
|
+
if number not in result:
|
|
13
|
+
result.append(number)
|
|
14
|
+
|
|
15
|
+
return result
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
class Node:
|
|
2
|
+
def __init__(self, value):
|
|
3
|
+
self.value = value
|
|
4
|
+
self.next = None
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def reverse_linked_list(values=None):
|
|
8
|
+
if values is None:
|
|
9
|
+
values = list(
|
|
10
|
+
map(int, input("Enter linked list values separated by spaces: ").split())
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
if not values:
|
|
14
|
+
return []
|
|
15
|
+
|
|
16
|
+
head = Node(values[0])
|
|
17
|
+
current = head
|
|
18
|
+
|
|
19
|
+
for value in values[1:]:
|
|
20
|
+
current.next = Node(value)
|
|
21
|
+
current = current.next
|
|
22
|
+
|
|
23
|
+
previous = None
|
|
24
|
+
current = head
|
|
25
|
+
|
|
26
|
+
while current:
|
|
27
|
+
next_node = current.next
|
|
28
|
+
current.next = previous
|
|
29
|
+
previous = current
|
|
30
|
+
current = next_node
|
|
31
|
+
|
|
32
|
+
result = []
|
|
33
|
+
|
|
34
|
+
while previous:
|
|
35
|
+
result.append(previous.value)
|
|
36
|
+
previous = previous.next
|
|
37
|
+
|
|
38
|
+
return result
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
def second_largest(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
unique_numbers = list(set(numbers))
|
|
9
|
+
|
|
10
|
+
if len(unique_numbers) < 2:
|
|
11
|
+
raise ValueError("Need at least two different numbers")
|
|
12
|
+
|
|
13
|
+
largest = unique_numbers[0]
|
|
14
|
+
second = None
|
|
15
|
+
|
|
16
|
+
for number in unique_numbers:
|
|
17
|
+
|
|
18
|
+
if number > largest:
|
|
19
|
+
second = largest
|
|
20
|
+
largest = number
|
|
21
|
+
|
|
22
|
+
elif second is None or number > second:
|
|
23
|
+
second = number
|
|
24
|
+
|
|
25
|
+
return second
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
def selection_sort(numbers=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces : ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
numbers = numbers.copy()
|
|
9
|
+
|
|
10
|
+
for i in range(len(numbers)):
|
|
11
|
+
|
|
12
|
+
minimum = i
|
|
13
|
+
|
|
14
|
+
for j in range(i + 1, len(numbers)):
|
|
15
|
+
|
|
16
|
+
if numbers[j] < numbers[minimum]:
|
|
17
|
+
minimum = j
|
|
18
|
+
|
|
19
|
+
numbers[i], numbers[minimum] = (
|
|
20
|
+
numbers[minimum],
|
|
21
|
+
numbers[i]
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
return numbers
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
def is_subsequence(text=None, sequence=None):
|
|
2
|
+
|
|
3
|
+
if text is None:
|
|
4
|
+
text = input("Enter main string to check for subsequence: ")
|
|
5
|
+
|
|
6
|
+
if sequence is None:
|
|
7
|
+
sequence = input("Enter sequence to check for: ")
|
|
8
|
+
|
|
9
|
+
index = 0
|
|
10
|
+
|
|
11
|
+
for character in text:
|
|
12
|
+
|
|
13
|
+
if index < len(sequence) and character == sequence[index]:
|
|
14
|
+
index += 1
|
|
15
|
+
|
|
16
|
+
return index == len(sequence)
|
jugaadcode/two_sum.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
def two_sum(numbers=None, target=None):
|
|
2
|
+
|
|
3
|
+
if numbers is None:
|
|
4
|
+
numbers = list(
|
|
5
|
+
map(int, input("Enter numbers separated by spaces: ").split())
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
if target is None:
|
|
9
|
+
target = int(input("Enter target: "))
|
|
10
|
+
|
|
11
|
+
seen = {}
|
|
12
|
+
|
|
13
|
+
for index, number in enumerate(numbers):
|
|
14
|
+
|
|
15
|
+
difference = target - number
|
|
16
|
+
|
|
17
|
+
if difference in seen:
|
|
18
|
+
return [seen[difference], index]
|
|
19
|
+
|
|
20
|
+
seen[number] = index
|
|
21
|
+
|
|
22
|
+
return []
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
def valid_parentheses(text=None):
|
|
2
|
+
|
|
3
|
+
if text is None:
|
|
4
|
+
text = input("Enter brackets: ")
|
|
5
|
+
|
|
6
|
+
stack = []
|
|
7
|
+
|
|
8
|
+
pairs = {
|
|
9
|
+
")": "(",
|
|
10
|
+
"]": "[",
|
|
11
|
+
"}": "{"
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
for character in text:
|
|
15
|
+
|
|
16
|
+
if character in "([{":
|
|
17
|
+
|
|
18
|
+
stack.append(character)
|
|
19
|
+
|
|
20
|
+
elif character in ")]}":
|
|
21
|
+
|
|
22
|
+
if not stack:
|
|
23
|
+
return False
|
|
24
|
+
|
|
25
|
+
if stack.pop() != pairs[character]:
|
|
26
|
+
return False
|
|
27
|
+
|
|
28
|
+
return len(stack) == 0
|
jugaadcode/word_count.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: jugaadcode
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A Python library for common programming logic and algorithms
|
|
5
|
+
Author: Mohamed Faraazman Bin Farooq S
|
|
6
|
+
Requires-Python: >=3.9
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
|
|
9
|
+
# codinglogic
|
|
10
|
+
|
|
11
|
+
A Python library containing common coding logic, algorithms, and
|
|
12
|
+
programming utilities.
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
pip install codinglogic
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
jugaadcode/__init__.py,sha256=IYXM0UbXDBGbk6gUACQYlGI4ZjX0Cqzuh28fdUgrNDg,2182
|
|
2
|
+
jugaadcode/anagram.py,sha256=lmT7PCQIZ6S8PWEv3bBSiQ_SvNc87nXkll8dzUKz3YM,383
|
|
3
|
+
jugaadcode/armstrong.py,sha256=4qcbwpR-tlWoOwZFHcM37_Us2xdx79vR4Nz6fryRQVo,266
|
|
4
|
+
jugaadcode/binary_search.py,sha256=VEMrAgw1erxFqnhns2JUk179jkPlgSnwt-CbewoLRdU,583
|
|
5
|
+
jugaadcode/bubble_sort.py,sha256=4whLgaTF1mA3jqFwLl0XJfyQC-lI9HUFQ2KKMPXJ5yo,494
|
|
6
|
+
jugaadcode/capitalize_words.py,sha256=DaIECPgH9ip90O9CgEYyYDV9fFW3w02L2FEus_TmBlw,152
|
|
7
|
+
jugaadcode/character_frequency.py,sha256=6VzZ0At_AzW4xkIXJn3DVJf37UUG7lmVyWmtFstj7WI,308
|
|
8
|
+
jugaadcode/climbing_stairs.py,sha256=D67flCjk3uTDUBx7Teb7LJ28XKfXh5XReRpp8d79Rqo,274
|
|
9
|
+
jugaadcode/coin_change.py,sha256=fmuTy-JPShNYY3Jvw2eaKQLynJrUe4jFi5ZFTzH5KhM,638
|
|
10
|
+
jugaadcode/count_vowels.py,sha256=o450xlVBGV643RLbNk4HevRiqL0udwOWx8jVzPKTmAE,268
|
|
11
|
+
jugaadcode/counting_sort.py,sha256=HgY9PdX64WL_LPc-3Z7DC-T_4lI5tl5AbHrLIbmG-Yo,558
|
|
12
|
+
jugaadcode/duplicate_number.py,sha256=aaKsCyDmg1P8YdZWWhM18LtD9H7gQ6k6J-algTtLz9c,326
|
|
13
|
+
jugaadcode/even_odd.py,sha256=gW3lUXF8BwuASm2KVi9bZm_j7Kk105zi0kK2z-Tvyc8,133
|
|
14
|
+
jugaadcode/factorial.py,sha256=3TYzmknbhvkcwJ2S6W3z8FoUeScwW61zPfb3ISui48o,281
|
|
15
|
+
jugaadcode/factorial_trailing_zeros_direct.py,sha256=_0yJjln2bMNkByKMLfYJ_S-ZcqEn9u3kqiSwDB8px4o,420
|
|
16
|
+
jugaadcode/factorial_with_trailing_zeros.py,sha256=KMlmnYoACzSBt8jkrD4jEt4O4T0i8Jlo8oaMQcQGmAs,549
|
|
17
|
+
jugaadcode/fibonacci.py,sha256=--yO48uw6Zz8Fbzc5y4W0UnD9qIHgO1mYogDF3P9q44,318
|
|
18
|
+
jugaadcode/find_max.py,sha256=Ga9uyua-jcK2ApJLmpAbRv9M2CdrkcBuhVXAQ3rCagk,308
|
|
19
|
+
jugaadcode/find_min.py,sha256=WazePtm5ypP1zrxSs08WlNFfasIRPyUdHnc11z0rw1E,308
|
|
20
|
+
jugaadcode/first_non_repeating.py,sha256=PpUTALLIqN0GTMTbonAl8uHk5Hjbgi4PbhIZzuGBrQw,436
|
|
21
|
+
jugaadcode/gcd.py,sha256=9Bl9an_BfJ_-9GV4wkDY7zQ1nN5NcD0mR6J-ytF_KOM,244
|
|
22
|
+
jugaadcode/harshad_number.py,sha256=FSR9eR5rySaN1RWPFPmGr4CeetXc9wIC3LddMlGAAyA,263
|
|
23
|
+
jugaadcode/input_utils.py,sha256=tsqBoPXnVlR0oce18bthVXa6Bqh8Ux6fZMf2mQrIQcI,1109
|
|
24
|
+
jugaadcode/insertion_sort.py,sha256=tiycgtt9p2w533VY9h3zcizbAqNYfXrSGwkWpKRsABQ,470
|
|
25
|
+
jugaadcode/kth_largest.py,sha256=1aPTTO9J-pafz_B8stNy3TNR0qNWjRR_GocRDFvgI-w,401
|
|
26
|
+
jugaadcode/lcm.py,sha256=lkhIVwhTMwoEVDoJ4MlVnrmKGAsxHDthd0mQE-OFAbk,328
|
|
27
|
+
jugaadcode/linear_search.py,sha256=2A6yf_NN0Q-4eIJcGB_Dg20AKCCvu1uB1UAMVsADKUI,380
|
|
28
|
+
jugaadcode/longest_consecutive.py,sha256=OWazmdH5OAdSiANWa4gPJGP6d_TbwiG0-XMw2bNQcDw,519
|
|
29
|
+
jugaadcode/longest_word.py,sha256=yPJuOqNhKZyi1zdg9PdE_o6TWmUqcVp-wCn6Iro2EKU,334
|
|
30
|
+
jugaadcode/matrix_transpose.py,sha256=R38kpJzBflRqQ8Zq444-2zCYpT-mo6P_8N-jiq04Zpg,866
|
|
31
|
+
jugaadcode/maximum_subarray.py,sha256=LQTO6CE7HpaRpUiWA7EvLIXc2b9yFkl01yiqea9cyTI,525
|
|
32
|
+
jugaadcode/merge_sort.py,sha256=SZUCsV8miXkmIH5rCjX5YNczQJuJCASFpwxuRx-07ao,681
|
|
33
|
+
jugaadcode/move_zeros.py,sha256=BKN4vOu6_oEWeSroFPwWEnBG7JvphWcRMceGHwx08EU,405
|
|
34
|
+
jugaadcode/pair_with_difference.py,sha256=EwvSnDbbdWGso8Uj_-8pEwDisM4QypNgA-3HypGkbFA,557
|
|
35
|
+
jugaadcode/palindrome.py,sha256=-EcNGf0xMgX82YKSlr2h6bdIOxl8qWw3NmouSqY-aLQ,198
|
|
36
|
+
jugaadcode/perfect_number.py,sha256=5oBtVOzjShTGbvFnNuPVx2Wma8GDyqW5RvrJcZfMaDM,371
|
|
37
|
+
jugaadcode/power.py,sha256=lostOgLGCEky0_xPAbZViCfSDyLBy542-F8tp4_wnEQ,339
|
|
38
|
+
jugaadcode/prime.py,sha256=orxYVpbVbbKuuvrEuIiy4wJxqjGyJiONtAYpbrmWK1w,265
|
|
39
|
+
jugaadcode/quick_sort.py,sha256=vRrPqxNEB9eMy0Q3OLGlpWwULCE2spa1qKJJaepZMfo,545
|
|
40
|
+
jugaadcode/remove_duplicates_array.py,sha256=RYkzQMVZisziiGtJsBK4EMv7cTTYzkKORCiKNwYYRFo,316
|
|
41
|
+
jugaadcode/remove_duplicates_string.py,sha256=kt7k-8EMi9s2EWspG1L6cqjgcQxgMdqyyvj9cZkaodo,287
|
|
42
|
+
jugaadcode/reverse_linked_list.py,sha256=gppKEqvAJO_VkHBziTTJl6bCUMEbqQgMCgF1GnuAzWc,802
|
|
43
|
+
jugaadcode/reverse_number.py,sha256=GjLpy5-f5SzK6q52F1TIG1HVKkQm4w8GGgS4svbJ3DU,180
|
|
44
|
+
jugaadcode/reverse_string.py,sha256=jtFa4Vn10FKBDIcmJWkYuHuPdQgl5ucqUHAEr1zQFBg,132
|
|
45
|
+
jugaadcode/second_largest.py,sha256=Zf-cJmLgUBOL3YCvBCOdSoLube3mXBpO7VYXn611XRo,599
|
|
46
|
+
jugaadcode/selection_sort.py,sha256=f8dOcYhlWVI9Y3yz_1-7KFMVu-28_Qtk1m7a3CWGoBY,523
|
|
47
|
+
jugaadcode/strong_number.py,sha256=rd9ut2wVqNawu7rk9MeA0NSUo5xAdWjxJrJiaiArU-Y,265
|
|
48
|
+
jugaadcode/subsequence.py,sha256=viddNeuducpo2YGbNCCbQKGOyRtwumQP3Nk3IyWSXYs,404
|
|
49
|
+
jugaadcode/sum_of_digits.py,sha256=PqMzKNVRgbsAvtvgcaPjwlPvU6N0oMxZe2dGovUWN6s,181
|
|
50
|
+
jugaadcode/trailing_zeros.py,sha256=uPrtifh7gTyXVBrLyAFj7hwxWeTJJq85Y9yApNp_N3A,258
|
|
51
|
+
jugaadcode/two_sum.py,sha256=gNMy1at4BAbq4YX56c8UcV6BXKAv8uHzcV8ySnjCbEM,485
|
|
52
|
+
jugaadcode/valid_parentheses.py,sha256=ywUHhFO-vfC4QfaPgAytGc1GwWEovuTI0xszep-Ny1Y,506
|
|
53
|
+
jugaadcode/word_count.py,sha256=eQ7O-XV3WpARl7hypOTxtZ2iT7yZYM0VcH9qWCYX5AQ,144
|
|
54
|
+
jugaadcode-0.1.0.dist-info/METADATA,sha256=f4Ql2d5L0eYRFdP1gTqNeuAshGGaY5A-FPoQGXa51Po,397
|
|
55
|
+
jugaadcode-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
56
|
+
jugaadcode-0.1.0.dist-info/top_level.txt,sha256=tZAqQKzT4GRpJ3majHjIOElT5YbnzmSMv-VRM8ajQlY,11
|
|
57
|
+
jugaadcode-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
jugaadcode
|