给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = "abcd"
t = "abcde"
输出:
e
解释:
'e' 是那个被添加的字母。
class Solution {
public:
char findTheDifference(string s, string t) {
/*
//先排序,后比较,不相等即为所求 8ms
sort(s.begin(),s.end());
sort(t.begin(),t.end());
for(int i=0;i<t.size();i++)
if(s[i]!=t[i])
return t[i];
*/
/*
//异或 最后的即为所求 4ms
char ch=0;
for(int i=0;i<s.size();i++)
ch=ch^s[i]^t[i];
ch=ch^t[t.size()-1];
return ch;
*/
//作差 4ms
int sums=0;
int sumt=0;
for(int i=0;i<s.size();i++)
{
sums+=s[i];
sumt+=t[i];
}
sumt+=t[t.size()-1];
return char(sumt-sums);
}
};