609. Find Duplicate File in System

ss
Feb 20, 2021

--

難怪倒讚那麼多, 這題應該是考程式能力, 跟 邏輯相對來說比較沒有關係, 刻的出來就可以了

class Solution {
public:

vector<vector<string>> findDuplicate(vector<string>& paths) {
vector<vector<string>> res;
unordered_map<string, vector<string>> m;
vector<string> each_file;
for(int k = 0; k< paths.size();k++){
string t = paths[k];
string path = "";

int i = 0;
for(;i < t.size();i++){
if(t[i] == ' '){
break;
}else{
path+=t[i];
}
}
string file_content = "";
for(;i<t.size();i++){
if(t[i] == ' ' || i == t.size() - 1){
if (i == t.size() - 1){
file_content +=t[i];
}
if(!file_content.empty()){
each_file.push_back(path+ "/"+file_content);
file_content = "";
}
}else{
file_content += t[i];
}
}
}
for(auto s: each_file){
string content = "";
for(int i = s.size() -1;i>=0;i--){
if(s[i] == '('){
m[content].push_back(s.substr(0, i));
break;
}else{
content += s[i];
}
}
}
for(auto e: m){
if(e.second.size() > 1)
res.push_back(e.second);
}
return res;
}
};

--

--

ss
ss

No responses yet