> 技术文档 > LeetCode|Day25|389. 找不同|Python刷题笔记

LeetCode|Day25|389. 找不同|Python刷题笔记


LeetCode|Day25|389. 找不同|Python刷题笔记

🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>


📌 题目简介

题号:389. 找不同
难度:简单
题目链接:点击跳转


🧾 题目描述(简要)

给定两个字符st,其中 t 是由 s 随机打乱后,并在某一个位置添加一个字母生成的。
请找出在 t 中被添加的那个字母。

示例:

输入:s = \"abcd\", t = \"abcde\"输出:\"e\"

💡 解法:使用异或操作 XOR

class Solution: def findTheDifference(self, s: str, t: str) -> str: res = 0 for ch in s + t: res ^= ord(ch) return chr(res)

🧠 我的理解

  • 利用异或的性质:两个相同的数异或为 0;
  • 最后剩下的就是 t 中多出来的字符;
  • 时间复杂度 O(n),空间复杂度 O(1),非常巧妙。

📌 基础语法复习:

  • ord(ch):字符转 ASCII 值;
  • chr(x):ASCII 值转字符;
  • ^ 是按位异或运算符。

📌 返回总目录:点我回目录