程式語言 - LeetCode - CPP - 609. Find Duplicate File in System



題目:


解答:

class Solution {
public:
    vector<vector<string>> findDuplicate(vector<string>& paths) {
        unordered_map<string, vector<string>> mp;

        for (auto p : paths) {
            stringstream ss(p);

            string dir;

            ss >> dir;

            string f;

            while (ss >> f) {
                int l = f.find('(');
                int r = f.find(')');

                string n = f.substr(0, l);
                string c = f.substr(l + 1, r - l - 1);
                string full = dir + "/" + n;

                mp[c].push_back(full);
            }
        }

        vector<vector<string>> ans;

        for (auto [c, f] : mp) {
            if (f.size() > 1) {
                ans.push_back(f);
            }
        }

        return ans;
    }
};