389. 找不同

方法一:异或运算 什么是“异或”? 在Python中,a ^ b表示把a和b进行异或运算。 任何数与自己异或,结果都是0。 任何数与 0 异或,结果还是它自己。 运算顺序不影响结果(交换律)。</

方法一:异或运算

什么是“异或”?

  • 在Python中,a ^ b表示把ab进行异或运算。

  • 任何数与自己异或,结果都是0

  • 任何数与 0 异或,结果还是它自己。

  • 运算顺序不影响结果(交换律)。

  • ord(ch):把字符转换为数字。

  • chr(num):把数字变回字符。

完整代码

class Solution:
    def findTheDifference(self, s: str, t: str) -> str:
        ans = 0  # 初始化异或结果为 0

        # 1. 拿 s 里的每个字母去“碰撞”异或
        for ch in s:
            ans = ans ^ ord(ch)  # 也可以简写成 ans ^= ord(ch)

        # 2. 拿 t 里的每个字母继续去“碰撞”异或
        for ch in t:
            ans = ans ^ ord(ch)

        # 3. 剩下的数字转回字符
        return chr(ans)

方法二:求和作差法

class Solution:
    def findTheDifference(self, s: str, t: str) -> str:
        sum_s = 0  # 用来记录 s 中所有字母的数字总和
        sum_t = 0  # 用来记录 t 中所有字母的数字总和

        # 1. 累加 s 里面所有字母的 ASCII 数字
        for ch in s:
            sum_s = sum_s + ord(ch)

        # 2. 累加 t 里面所有字母的 ASCII 数字
        for ch in t:
            sum_t = sum_t + ord(ch)

        # 3. 计算差值,并转回字符
        diff = sum_t - sum_s
        return chr(diff)

1768. 交替合并字符串 2026-08-10