389. 找不同

题目

给定两个字符串 st,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。
示例:

1
2
3
4
5
6
7
8
9
输入:
s = "abcd"
t = "abcde"

输出:
e

解释:
'e' 是那个被添加的字母。

解答

思路

这道题目可以转化为一个列表,其中有一个字符只出现了一次,其余的字符均出现两次的问题。将字符转换为char,使用异或即可。

代码

1
大专栏  389. 找不同n class="line">2
3
4
5
6
7
8
9
10
11
12
13
14
class  {
public char findTheDifference(String s, String t) {
char tmp = 0x00;
for(int i = 0;i < s.length();i++) {
tmp =(char)(tmp ^ s.charAt(i));
}

for(int i = 0;i < t.length();i++) {
tmp = (char)(tmp ^ t.charAt(i));
}

return tmp;
}
}
原文地址:https://www.cnblogs.com/lijianming180/p/12376193.html