389. 找不同

题目

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

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

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

示例1:

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

输出:
e

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

示例2:

1
2
输入:s = "", t = "y"
输出:"y"

提示:

  • 0 <= s.length <= 1000
  • t.length == s.length + 1
  • st 只包含小写字母

解法

解法一:

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

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
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;
}
}
0%