Skip to content

Commit a4c62df

Browse files
authored
Merge pull request #1860 from tahsintunan/929
create 929. Unique Email Addresses
2 parents 8dcc3d2 + c4ba841 commit a4c62df

7 files changed

+61
-34
lines changed

go/0002-add-two-numbers.go.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
2+
var dummy = new(ListNode)
3+
var l3 **ListNode = &dummy
4+
var carry int
5+
list1 := l1
6+
list2 := l2
7+
8+
for (list1 != nil) || (list2 != nil) {
9+
l3 = &((*l3).Next)
10+
*l3 = new(ListNode)
11+
var sum int
12+
13+
if list1 != nil {
14+
sum += list1.Val
15+
list1 = list1.Next
16+
}
17+
18+
if list2 != nil {
19+
sum += list2.Val
20+
list2 = list2.Next
21+
}
22+
23+
(*l3).Val = (sum + carry) % 10
24+
carry = (sum + carry) / 10
25+
}
26+
27+
if carry > 0 {
28+
l3 = &((*l3).Next)
29+
*l3 = new(ListNode)
30+
(*l3).Val = carry
31+
}
32+
33+
return dummy.Next
34+
}

go/0002-add-two-numbers.go.txt

Lines changed: 0 additions & 34 deletions
This file was deleted.
File renamed without changes.

go/0929-unique-email-addresses.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import "strings"
2+
3+
func numUniqueEmails(emails []string) int {
4+
ans, uniqueAddressMap := 0, make(map[string]struct{})
5+
for _, email := range emails {
6+
address := uniqueAddress(email)
7+
if _, ok := uniqueAddressMap[address]; !ok {
8+
ans++
9+
uniqueAddressMap[address] = struct{}{}
10+
}
11+
}
12+
return ans
13+
}
14+
15+
func uniqueAddress(email string) string {
16+
parts := strings.Split(email, "@")
17+
local, domain := parts[0], parts[1]
18+
19+
local = strings.ReplaceAll(local, ".", "")
20+
21+
plusIndex := strings.Index(local, "+")
22+
if plusIndex >= 0 {
23+
local = local[:plusIndex]
24+
}
25+
26+
return local + "@" + domain
27+
}

0 commit comments

Comments
 (0)