题目
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入: s = "abcd" t = "abcde" 输出: e 解释: 'e' 是那个被添加的字母。
分析
和之前的一道位运算的题很相似,只不过是把数字换成了字符串,不过也是可以用位运算的,效率会很快的。
可以把s,t串变为char数组, 依次进行按位与运算,最后的结果转为char类型输出。
代码
class Solution {
public char findTheDifference(String s, String t) {
s += '\0';
char[] sChars = s.toCharArray();
char[] tChars = t.toCharArray();
int result = 0;
for (int i = 0; i < sChars.length; i++)
result = result ^ sChars[i] ^ tChars[i];
return (char)result;
}
}