389 Find the Difference 找不同

给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = "abcd"
t = "abcde"
输出:
e
解释:
'e' 是那个被添加的字母。
详见:https://leetcode.com/problems/find-the-difference/description/

C++:

方法一:

class Solution {
public:
    char findTheDifference(string s, string t) {
        char res=0;
        for(char c:s)
        {
            res^=c;
        }
        for(char c:t)
        {
            res^=c;
        }
        return res;
    }
};

 方法二:

class Solution {
public:
    char findTheDifference(string s, string t) {
        unordered_map<char, int> m;
        for (char c : s)
        {
            ++m[c];
        }
        for (char c : t) 
        {
            if (--m[c] < 0)
            {
                return c;
            }
        }
        return 0;
    }
};

 

posted on 2018-04-15 20:55  lina2014  阅读(154)  评论(0编辑  收藏  举报

导航