1233. Remove Sub-Folders from the Filesystem
JAVA
class Solution { public List<String> removeSubfolders(String[] folder) { Arrays.sort(folder); List<String> ans = new ArrayList<>(); ans.add(folder[0]); for (int i = 1; i < folder.length; ++i) { int m = ans.get(ans.size() - 1).length(); int n = folder[i].length(); if (m >= n || !(ans.get(ans.size() - 1).equals(folder[i].substring(0, m)) && folder[i].charAt(m) == '/')) { ans.add(folder[i]); } } return ans; } }
C++
class Solution { public: vector<string> removeSubfolders(vector<string>& folder) { sort(folder.begin(), folder.end()); vector<string> ans = {folder[0]}; for (int i = 1; i < folder.size(); ++i) { int m = ans.back().size(); int n = folder[i].size(); if (m >= n || !(ans.back() == folder[i].substr(0, m) && folder[i][m] == '/')) { ans.emplace_back(folder[i]); } } return ans; } };
Comments
Post a Comment