389. Find the Difference


做题历程:

  1. 2016/Sep/04 独立解出,大概耗时8分钟

本题是一道不折不扣的Easy题,我能想到两种解法:第一种是比较通俗的Hashmap,另外一种是用位运算异或来解,这次为了图省事,用了第一种解法,不多说,代码如下:

class Solution {
public:
    char findTheDifference(string s, string t) {
        unordered_map<char, int> char_map;

        for (int i = 0; i < s.length(); ++i) {
            auto found = char_map.find(s[i]);
            if (found == char_map.end()) {
                char_map[s[i]] = 0;
            }
            char_map[s[i]]++;
        }

        for (int j = 0; j < t.length(); ++j) {
            auto found = char_map.find(t[j]);
            if (found == char_map.end() || char_map[t[j]] == 0) {
                return t[j];
            }
            char_map[t[j]]--;
        }
        return ' ';
    }
};

results matching ""

    No results matching ""