Given two strings s and t which consist of only lowercase letters.
String t is generated by random shuffling string s and then add one more letter at a random position.
Find the letter that was added in t.
Example:
Input:
s = “abcd”
t = “abcde”
Output:
e
Explanation:
‘e’ is the letter that was added.
解法:
1.利用map存储s中每个字母出现的次数,然后遍历t, 若字母能找到,计数减1。若遇到找不到的字母即为结果,或者计数为负数的字母。
2.异或运算
class Solution {
public:
char findTheDifference(string s, string t)
{
//解法1
/* unordered_map<char,int> a;
char res;
for(char str:s)
a[str]++;
for(char str:t)
{
if(a.find(str) != a.end())
{
a[str]--;
if(a[str]<0)
res = str;
}
else
res= str;
}
return res;*/
//解法2:
char res=0;
for(char str:s) res ^=str;
for(char str:t) res ^=str;
return res;
}
};