Speed 96,74%, memory 82,33%
\n# Approach\nWe have 3 loops here. First one loops through strings, second composes local part of the email and the third one places pointer exactly where @ ch
\n# Approach\nWe have 3 loops here. First one loops through strings, second composes local part of the email and the third one places pointer exactly where @ char is. This loop is in case the previous one finished because of \'+\' sign, then we still might have some characters to go through and find \'@\' sign.\n\n# Complexity\n- Time complexity:\nO(n * m)\n\n- Space complexity:\nO(n)\n\n# Code\n```\nfunc numUniqueEmails(emails []string) int {\n\tdic := make(map[string]int)\n\n\tfor i := 0; i < len(emails); i++ {\n        \n\t\tvar local []byte\n        var j int\n\t\tfor emails[i][j] != \'@\' && emails[i][j] != \'+\' {\n\t\t\tif emails[i][j] != \'.\' {\n\t\t\t\tlocal = append(local, emails[i][j])\n\t\t\t}\n\t\t\tj++\n\t\t}\n\n\t\tfor emails[i][j] != \'@\' {\n\t\t\tj++\n\t\t}\n\t\t\n\t\taddr := string(local) + string(emails[i][j:])\n\t\tif _, exists := dic[addr]; !exists {\n\t\t\tdic[addr] = 1\n\t\t}\n\t}\n\treturn len(dic)\n}\n```
['Go']