def longest_common_prefix(s1: str, s2: str) -> str:
    """
    Finds the longest common prefix (substring) given two strings

    s1: First string to compare
    s2: Second string to compare

    Returns:
        Longest common prefix between s1 and s2

    >>> longest_common_prefix("ACTA", "GCCT")
    ''
    >>> longest_common_prefix("ACTA", "ACT")
    'ACT'
    >>> longest_common_prefix("ACT", "ACTA")
    'ACT'
    >>> longest_common_prefix("GATA", "GAAT")
    'GA'
    >>> longest_common_prefix("ATGA", "")
    ''
    >>> longest_common_prefix("", "GCCT")
    ''
    >>> longest_common_prefix("GCCT", "GCCT")
    'GCCT'
    """
    i = 0
    while i < min(len(s1), len(s2)):
        if s1[i] != s2[i]:
            break
        i += 1
    return s1[:i]