From 301d70cf8c0814897b2f8822b5fee8b272f46e9e Mon Sep 17 00:00:00 2001
From: Mhrooz <cxyoz@outlook.com>
Date: Sat, 25 May 2024 12:01:35 +0200
Subject: [PATCH] pass 141 easy

---
 141-240525-pass/main.py | 21 +++++++++++++++++++++
 20-240526-pass/main.py  | 42 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100644 141-240525-pass/main.py
 create mode 100644 20-240526-pass/main.py

diff --git a/141-240525-pass/main.py b/141-240525-pass/main.py
new file mode 100644
index 0000000..0c3146c
--- /dev/null
+++ b/141-240525-pass/main.py
@@ -0,0 +1,21 @@
+# Definition for singly-linked list.
+class ListNode:
+    def __init__(self, x):
+        self.val = x
+        self.next = None
+
+# Definition for singly-linked list.
+# class ListNode:
+#     def __init__(self, x):
+#         self.val = x
+#         self.next = None
+class Solution:
+    def hasCycle(self, head: Optional[ListNode]) -> bool:
+        cnt = 0
+        if head == None: return False
+        while cnt < 1e4+10:
+            if head.next == None:
+                return False
+            head = head.next
+            cnt += 1
+        return True
\ No newline at end of file
diff --git a/20-240526-pass/main.py b/20-240526-pass/main.py
new file mode 100644
index 0000000..2b490ec
--- /dev/null
+++ b/20-240526-pass/main.py
@@ -0,0 +1,42 @@
+class Solution:
+    def isValid(self, s: str) -> bool:
+        def rcg_type(ch) -> int:
+            if ch[0] =='(':
+                return 1
+            if ch[0] ==')':
+                return 2
+            if ch[0] =='{':
+                return 3
+            if ch[0] =='}':
+                return 4
+            if ch[0] =='[':
+                return 5
+            if ch[0] ==']':
+                return 6
+        stack = []
+        top_idx = -1
+        def is_empty():
+            return top_idx == -1
+        def set_ele(stack: list, idx: int, ele: int):
+            if len(stack) <= idx:
+                stack.append(ele)
+            else:
+                stack[idx] = ele
+        for ch in s:
+            tp = rcg_type(ch)
+            if tp % 2 == 1:
+                top_idx += 1
+                set_ele(stack, top_idx, tp)
+            else:
+                if is_empty(): return False
+                top_ele = stack[top_idx]
+                if tp - top_ele != 1: return False
+                top_idx -= 1
+        if not is_empty(): return False
+        return True
+    
+sol = Solution()
+print(sol.isValid("()"))
+print(sol.isValid("(){}[]"))
+print(sol.isValid("(]"))
+print(sol.isValid("[(])"))