leetcode: 找不同

题目

给定两个字符串 s 和 t ,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。

示例 1:
输入:s = "abcd", t = "abcde"
输出:"e"
解释:'e' 是那个被添加的字母。

示例 2:
输入:s = "", t = "y"
输出:"y"

解答

class Solution {
    public char findTheDifference(String s, String t) {
        char result=0;        
        for(char c:s.toCharArray()){         
            result ^=c;
        }
        for(char c:t.toCharArray()){            
            result ^=c;
        }
        return result;
    }
}

需要注意的点是:

  • 异或运算不依赖计算顺序(交换律)
  • 无论中间结果是什么,最终相同字符都会两两抵消
posted @ 2025-05-14 10:59  尼兰  阅读(12)  评论(0)    收藏  举报