From f05d888a0b621ca4e99e2b0fb6e23c097006fe41 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Tue, 28 May 2024 10:29:13 +0200 Subject: Init --- progs/dont_care/a0.py | 16 ++++++++++++++++ progs/dont_care/a242.py | 12 ++++++++++++ progs/dont_care/a29.py | 9 +++++++++ progs/dont_care/a309.py | 8 ++++++++ progs/dont_care/a326.py | 15 +++++++++++++++ progs/dont_care/a730.py | 18 ++++++++++++++++++ progs/dont_care/a780.py | 8 ++++++++ progs/dont_care/a789.py | 3 +++ progs/dont_care/a875.py | 13 +++++++++++++ 9 files changed, 102 insertions(+) create mode 100644 progs/dont_care/a0.py create mode 100644 progs/dont_care/a242.py create mode 100644 progs/dont_care/a29.py create mode 100644 progs/dont_care/a309.py create mode 100644 progs/dont_care/a326.py create mode 100644 progs/dont_care/a730.py create mode 100644 progs/dont_care/a780.py create mode 100644 progs/dont_care/a789.py create mode 100644 progs/dont_care/a875.py (limited to 'progs/dont_care') diff --git a/progs/dont_care/a0.py b/progs/dont_care/a0.py new file mode 100644 index 0000000..623045c --- /dev/null +++ b/progs/dont_care/a0.py @@ -0,0 +1,16 @@ +class Pair(object): + def __init__(self, a, b): + self.a = a + self.b = b +def max_chain_length(arr, n): + max = 0 + mcl = [1 for i in range(n)] + for i in range(1, n): + for j in range(0, i): + if (arr[i].a > arr[j].b and + mcl[i] < mcl[j] + 1): + mcl[i] = mcl[j] + 1 + for i in range(n): + if (max < mcl[i]): + max = mcl[i] + return max \ No newline at end of file diff --git a/progs/dont_care/a242.py b/progs/dont_care/a242.py new file mode 100644 index 0000000..dc0ceec --- /dev/null +++ b/progs/dont_care/a242.py @@ -0,0 +1,12 @@ +import heapq +def nth_super_ugly_number(n, primes): + uglies = [1] + def gen(prime): + for ugly in uglies: + yield ugly * prime + merged = heapq.merge(*map(gen, primes)) + while len(uglies) < n: + ugly = next(merged) + if ugly != uglies[-1]: + uglies.append(ugly) + return uglies[-1] \ No newline at end of file diff --git a/progs/dont_care/a29.py b/progs/dont_care/a29.py new file mode 100644 index 0000000..c5f976c --- /dev/null +++ b/progs/dont_care/a29.py @@ -0,0 +1,9 @@ +def adjac(ele, sub = []): + if not ele: + yield sub + else: + yield from [idx for j in range(ele[0] - 1, ele[0] + 2) + for idx in adjac(ele[1:], sub + [j])] +def get_coordinates(test_tup): + res = list(adjac(test_tup)) + return (res) \ No newline at end of file diff --git a/progs/dont_care/a309.py b/progs/dont_care/a309.py new file mode 100644 index 0000000..84b0ac2 --- /dev/null +++ b/progs/dont_care/a309.py @@ -0,0 +1,8 @@ +import datetime +def check_date(m, d, y): + try: + m, d, y = map(int, (m, d, y)) + datetime.date(y, m, d) + return True + except ValueError: + return False \ No newline at end of file diff --git a/progs/dont_care/a326.py b/progs/dont_care/a326.py new file mode 100644 index 0000000..8eeddd2 --- /dev/null +++ b/progs/dont_care/a326.py @@ -0,0 +1,15 @@ +class Node: + def __init__(self, data): + self.data = data + self.left = None + self.right = None +def max_height(node): + if node is None: + return 0 ; + else : + left_height = max_height(node.left) + right_height = max_height(node.right) + if (left_height > right_height): + return left_height+1 + else: + return right_height+1 \ No newline at end of file diff --git a/progs/dont_care/a730.py b/progs/dont_care/a730.py new file mode 100644 index 0000000..ba741d2 --- /dev/null +++ b/progs/dont_care/a730.py @@ -0,0 +1,18 @@ +class Node: + def __init__(self, data): + self.data = data + self.left = None + self.right = None +def get_height(root): + if root is None: + return 0 + return max(get_height(root.left), get_height(root.right)) + 1 +def is_tree_balanced(root): + if root is None: + return True + lh = get_height(root.left) + rh = get_height(root.right) + if (abs(lh - rh) <= 1) and is_tree_balanced( + root.left) is True and is_tree_balanced( root.right) is True: + return True + return False \ No newline at end of file diff --git a/progs/dont_care/a780.py b/progs/dont_care/a780.py new file mode 100644 index 0000000..e84f8ee --- /dev/null +++ b/progs/dont_care/a780.py @@ -0,0 +1,8 @@ +def group_tuples(Input): + out = {} + for elem in Input: + try: + out[elem[0]].extend(elem[1:]) + except KeyError: + out[elem[0]] = list(elem) + return [tuple(values) for values in out.values()] \ No newline at end of file diff --git a/progs/dont_care/a789.py b/progs/dont_care/a789.py new file mode 100644 index 0000000..06bda85 --- /dev/null +++ b/progs/dont_care/a789.py @@ -0,0 +1,3 @@ +def filter_oddnumbers(nums): + odd_nums = list(filter(lambda x: x%2 != 0, nums)) + return odd_nums \ No newline at end of file diff --git a/progs/dont_care/a875.py b/progs/dont_care/a875.py new file mode 100644 index 0000000..9bf97cf --- /dev/null +++ b/progs/dont_care/a875.py @@ -0,0 +1,13 @@ +def flatten(test_tuple): + for tup in test_tuple: + if isinstance(tup, tuple): + yield from flatten(tup) + else: + yield tup +def count_element_freq(test_tuple): + res = {} + for ele in flatten(test_tuple): + if ele not in res: + res[ele] = 0 + res[ele] += 1 + return (res) \ No newline at end of file -- cgit v1.2.3-18-g5258