input: Write a python function to clean and replace domain names in email addresses.
  assert clean_emails(["Mike@example.co    m", "Jane#gmail.com", "Mason*yahoo.com"]) == ["Mike@example.com", "Jane@google.com", "Mason@ymail.com"]
  assert clean_emails(["Bob@gmail.com", "Alice@yahoo.com"]) == ["Bob@google.com", "Alice@ymail.com"]
  assert clean_emails(["john@outlook.com", "mary@live.com"]) == ["john@outlook.com", "mary@live.com"]
output: def clean_emails(emails):
      replacements = {
          "gmail.com": "google.com",
          "yahoo.com": "ymail.com"
      }
  
      cleaned_emails = []
      for email in emails:
          # Remove any extraneous whitespace
          email = email.replace(" ", "")
          # Replace special characters
          email = email.replace("#", "@").replace("*", "@")
          # Fix the domain if it needs to be replaced
          local_part, domain = email.split("@")
          if domain in replacements:
              domain = replacements[domain]
          cleaned_emails.append(f"{local_part}@{domain}")
  
      return cleaned_emails