找出两个字符串中的不同字符
1. LeetCode 389: Find the Difference
2. 描述:
给定字符串s和t,二者都是由小写字母组成的。其中字符串t是通过将s重新洗牌(shuffling)并添加一个字符后组成的,找出字符串t中添加的字符。
3. 示例:
Input: s = "abcd" t = "abcde"
Output: e
Explanation:
'e' is the letter that was added.
4. 解决方案 1:
char findTheDifference(string s, string t) {
char char_array[26] = {0};
for(auto& c:s){
char_array[c - 'a']++;
}
for(auto& c: t){
char_array[c - 'a']--;
}
for(int i = 0; i < 26; i++){
if(char_array[i] < 0){
return 'a'+i;
}
}
}
5. 解决方案 2:
char findTheDifference(string s, string t) {
unordered_map<char,int> chars_map;
for(auto& c:s){
chars_map[c]++;
}
for(auto& c:t){
chars_map[c]--;
}
for(auto& num:chars_map){
if(num.second < 0){
return num.first;
}
}
}
6. 解决方案 3:
char findTheDifference(string s, string t) {
int res = 0;
for(auto& c:s){
res ^= c;
}
for(auto& c:t){
res ^= c;
}
return res;
}