题目描述
给定两个字符串 s 和 t ,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例 1:
输入:s = “abcd”, t = “abcde”
输出:“e”
解释:‘e’ 是那个被添加的字母。
示例 2:
输入:s = “”, t = “y”
输出:“y”
Solution
1.哈希表
受到[LeetCode] 242-有效的字母异位词的影响,看到查找字符就想用哈希表。
只需要用相同的方法遍历两个字符串,找到val为负数的那个键值对即可。
class Solution {
public:
char findTheDifference(string s, string t) {
unordered_map <char, int> map;
for(int i=0;i<s.size();i++)
{
map[s[i]]++;
}
for(int i=0;i<t.size();i++)
{
map[t[i]]--;
}
for(auto &c:map)
{
if(c.second<0) return c.first;
}
return 0;
}
};