题目链接: https://leetcode.com/problems/find-the-difference/
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.
思路: 一个hash表可以解决, 甚至可以用两个加起来然后异或
代码如下:
class Solution {
public:
char findTheDifference(string s, string t) {
unordered_map<char, int> hash;
char ans;
for(auto ch: s) hash[ch]++;
for(auto ch: t)
if(--hash[ch]<0) ans = ch;
return ans;
}
};
class Solution {
public:
char findTheDifference(string s, string t) {
s += t;
int ch =0;
for(auto val: s) ch ^= val;
return ch;
}
};