def go_match_fuzzy(name, string):
    """Check if string matches name using approximation."""
    if not string:
        return False

    name_len = len(name)
    string_len = len(string)

    if string_len > name_len:
        return False
    if name_len == string_len:
        return name == string

    # Attempt to match all chars somewhere in name
    prev_index = -1
    for i, char in enumerate(string):
        index = name.find(char, prev_index+1)
        if index == -1:
            return False
        prev_index = index
    return True