1. 刪除連結串列的倒數第 N 個結點
題目連結:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/
給定一個連結串列,刪除連結串列的倒數第 n 個結點,並且返回連結串列的頭結點。
class Solution:
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
dummy = ListNode(0)
dummy.next = head
fast = dummy
slow = dummy
for _ in range(n + 1):
fast = fast.next
while fast:
fast = fast.next
slow = slow.next
slow.next = slow.next.next
return dummy.next
2. 有效的括號
題目連結:https://leetcode.cn/problems/valid-parentheses/
給定一個只包括 '(',')','{','}','[',']' 的字串 s ,判斷字串是否有效。
有效字串需滿足:
- 左括號必須用相同型別的右括號閉合。
- 左括號必須以正確的順序閉合。
- 每個右括號都有一個對應的相同型別的左括號。
class Solution:
def isValid(self, s: str) -> bool:
stack = []
mapping = {')': '(', '}': '{', ']': '['}
for char in s:
if char in mapping.values():
stack.append(char)
elif char in mapping.keys():
if not stack or stack.pop()!= mapping[char]:
return False
return not stack