给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = “abcd”
t = “abcde”
输出:
e
解释:
‘e’ 是那个被添加的字母。
class Solution {
public:
char findTheDifference(string s, string t) {
int index1[128] = {0},index2[128] = {0};
for(int i = 0;i<s.size();i++){
index1[s[i]]++;
index2[t[i]]++;
}
index2[t[t.size()-1]]++;
for(int i = 0;i<s.size();i++){
if(index1[s[i]] != index2[s[i]]){
return s[i];
}
}
return t[t.size()-1];
}
};
优质答案:
class Solution {
public:
char findTheDifference(string s, string t) {
char res=0;
for(int i=0;i<s.length();i++)
res^=s[i];
for(int i=0;i<t.length();i++)
res^=t[i];
return res;
}
};