input: from typing import List
  
  def matching_paren(s: str) -> bool:
      """ Determine if a given string has matching parentheses.
      >>> matching_paren("()")
      True
      >>> matching_paren("(()")
      False
      >>> matching_paren("())")
      False
      >>> matching_paren("(a*(b+c)-d)")
      True
      """
output:     stack = []
      for char in s:
          if char == '(':
              stack.append(char)
          elif char == ')':
              if not stack:
                  return False
              stack.pop()
      return len(stack) == 0