LeetCode|Day25|389. 找不同|Python刷题笔记
LeetCode|Day25|389. 找不同|Python刷题笔记
🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>
📌 题目简介
题号:389. 找不同
难度:简单
题目链接:点击跳转
🧾 题目描述(简要)
给定两个字符串 s
和 t
,其中 t
是由 s
随机打乱后,并在某一个位置添加一个字母生成的。
请找出在 t
中被添加的那个字母。
示例:
输入:s = "abcd", t = "abcde"
输出:"e"
💡 解法:使用异或操作 XOR
class Solution:def findTheDifference(self, s: str, t: str) -> str:res = 0for ch in s + t:res ^= ord(ch)return chr(res)
🧠 我的理解
- 利用异或的性质:两个相同的数异或为 0;
- 最后剩下的就是 t 中多出来的字符;
- 时间复杂度 O(n),空间复杂度 O(1),非常巧妙。
📌 基础语法复习:
ord(ch)
:字符转 ASCII 值;chr(x)
:ASCII 值转字符;^
是按位异或运算符。