From c2643fc60ebfaaa816347258113f9bdd56792b44 Mon Sep 17 00:00:00 2001 From: Nawaid Date: Fri, 2 Oct 2020 04:00:36 +0530 Subject: [PATCH] Added Largest Time For Given Digits --- .../0949_largest_time_for_given_digits.py | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 LeetCode/0949_largest_time_for_given_digits.py diff --git a/LeetCode/0949_largest_time_for_given_digits.py b/LeetCode/0949_largest_time_for_given_digits.py new file mode 100644 index 0000000..a8acf18 --- /dev/null +++ b/LeetCode/0949_largest_time_for_given_digits.py @@ -0,0 +1,54 @@ +from collections import defaultdict + + +class Solution: + def largestTimeFromDigits(self, arr: List[int]) -> str: + num_dict = defaultdict(lambda: 0) + for i in arr: + num_dict[i] += 1 + + time_val = [0, 0, 0, 0] + index = 0 + + def item_filter(x): + if num_dict[x] > 0: + if index == 0: + if x <= 2: + return True + else: + return False + elif index == 1: + if time_val[0] < 2: + return True + else: + if x <= 3: + return True + else: + return False + elif index == 2: + if x <= 6: + return True + else: + return False + else: + if time_val[2] < 6: + return True + else: + if x == 0: + return True + else: + return False + else: + return False + + for i in range(len(time_val)): + index = i + val_list = list(filter(item_filter, arr)) + if len(val_list) > 0: + max_val = max(val_list) + time_val[i] = max_val + num_dict[max_val] -= 1 + else: + return "" + + return str(time_val[0]) + str(time_val[1]) + ":" + str(time_val[2]) + str(time_val[3])