Find the Difference - LeetCode
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 and t consist of lowercase English letters.
- code
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
cs, ct = Counter(s), Counter(t)
for k, v in ct.items():
if k not in cs or ct[k] != cs[k]: return k
- code
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
counter_s = Counter(s)
for ch in t:
if ch not in counter_s or counter_s[ch] == 0:
return ch
else:
counter_s[ch] -= 1
- code
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
# Initialize ch with 0, because 0 ^ X = X
# 0 when XORed with any bit would not change the bits value.
ch = 0
# XOR all the characters of both s and t.
for char_ in s:
ch ^= ord(char_)
for char_ in t:
ch ^= ord(char_)
# What is left after XORing everything is the difference.
return chr(ch)