0%

LeetCode-389

题目

Snipaste_2020-12-18_09-32-44.png

结果

计数法

Snipaste_2020-12-18_09-24-15.png

求和法

Snipaste_2020-12-18_09-36-50.png

异或法

Snipaste_2020-12-18_09-54-18.png

代码

计数

1
2
3
4
5
6
7
8
9
10
11
12
13
func findTheDifference(s string, t string) byte {
cnt := [26]int{}
for _, ch := range s {
cnt[ch-'a']++
}
for i := 0; ; i++ {
ch := t[i]
cnt[ch-'a']--
if cnt[ch-'a'] < 0 {
return ch
}
}
}

求和

1
2
3
4
5
6
7
8
9
10
func findTheDifference(s string, t string) byte {
sum := 0
for _, ch := range s {
sum -= int(ch)
}
for _, ch := range t {
sum += int(ch)
}
return byte(sum)
}

异或

1
2
3
4
5
6
func findTheDifference(s string, t string) (x byte) {
for i := range s {
x ^= s[i] ^ t[i]
}
return x ^ t[len(t)-1]
}
1
2
3
4
5
6
7
8
9
func findTheDifference(s string, t string) (x byte) {
for i := range s {
x ^= s[i]
}
for i := range t {
x ^= t[i]
}
return
}

复杂度

计数法

时间复杂度:O(n)

空间复杂度:O(n)

求和法

时间复杂度:O(n)

空间复杂度:O(1)