[LeetCode]389. Find the Difference
题目描述
思路
1 使用map,将第一个字符串中出现的字母存储+1,之后遍历第二个字符串,对于每个字符,若map中有,则对应-1,若无,则返回该字符
2 位运算,异或, 相同的字符异或结果为0
代码
1.使用map
class Solution {
public:
char findTheDifference(string s, string t) {
unordered_map<char, int> m;
for (char &p : s) {
++m[p];
}
for (char &p : t) {
if (m[p])
--m[p];
else
return p;
}
}
};
2 位运算
class Solution {
public:
char findTheDifference(string s, string t) {
char r = 0;
for(char &p : s)
r ^= p;
for(char &p : t)
r ^= p;
return r;
}
};
本文提供了LeetCode第389题“Find the Difference”的两种解决方案:一种利用哈希映射(unordered_map)来计数并找出不同字符;另一种采用位运算中的异或操作实现,巧妙地通过数学原理解决此问题。
385

被折叠的 条评论
为什么被折叠?



