diff --git a/container-with-most-water/mandel-17.py b/container-with-most-water/mandel-17.py new file mode 100644 index 0000000000..8a3643134c --- /dev/null +++ b/container-with-most-water/mandel-17.py @@ -0,0 +1,13 @@ +class Solution: + def maxArea(self, height: List[int]) -> int: + max_area = 0 + left, right = 0, len(height) - 1 + while left < right: + area = (right - left) * min(height[left], height[right]) + max_area = max(area, max_area) + if height[left] <= height[right]: + left += 1 + else: + right -= 1 + return max_area + diff --git a/valid-parentheses/mandel-17.py b/valid-parentheses/mandel-17.py new file mode 100644 index 0000000000..c136244df8 --- /dev/null +++ b/valid-parentheses/mandel-17.py @@ -0,0 +1,44 @@ +class ArrayStack: + def __init__(self, capacity): + self.capacity = capacity + self.array = [None] * self.capacity + self.top = -1 + + def isEmpty(self): + return self.top == -1 + + def isFull(self): + return self.top == self.capacity - 1 + + def push(self, item): + if not self.isFull(): + self.top += 1 + self.array[self.top] = item + else: + pass + + def pop(self): + if not self.isEmpty(): + self.top -= 1 + return self.array[self.top+1] + else: + pass + +class Solution: + def isValid(self, s: str) -> bool: + stack = ArrayStack(100) + for ch in s: + if ch in ('(', '[', '{'): + stack.push(ch) + elif ch in (')', ']', '}'): + if stack.isEmpty(): + return False + else: + left = stack.pop() + if (ch == ')' and left != '(') or \ + (ch == ']' and left != '[') or \ + (ch == '}' and left != '{'): + return False + return stack.isEmpty() + +