389. Find the Difference
🟩 Easy
You are given two strings s
and t
.
String t
is generated by random shuffling string s
and then add one more letter at a random position.
Return the letter that was added to t
.
Example 1
Input: s = "abcd", t = "abcde" Output: "e" Explanation: 'e' is the letter that was added.
Example 2
Input: s = "", t = "y" Output: "y"
Constraints
0 <= s.length <= 1000
t.length == s.length + 1
s
andt
consist of lowercase English letters.
Solution
My Solution
func findTheDifference(s string, t string) byte {
n := min(len(s), len(t))
m := map[byte]int{}
for i:=0; i<n; i++ {
m[s[i]]++
m[t[i]]--
}
m[t[len(t)-1]]--
for k, v := range m {
if v != 0 {
return k
}
}
return t[len(t)-1]
}
Optimal Solution
func findTheDifference(s string, t string) byte {
result := byte(0)
for i := 0; i < len(s); i++ {
result ^= s[i]
result ^= t[i]
}
result ^= t[len(t)-1]
return result
}

Leetcode: link
Last updated
Was this helpful?