388. Longest Absolute File Path
388. Longest Absolute File Path
- 用split(
\n) 将原串分割开,相当于一次读一行 - 利用
\t的个数来当前目录/文件在第几层 - 从上到下一行一行读入的顺序,用一个Map把前面几层的字符串长度都记下来,key存第几层,value存前几层字符串总长度。
参考了这个帖子.
class Solution {
public int lengthLongestPath(String input) {
Map<Integer, Integer> levelMap = new HashMap<>();
levelMap.put(-1, 0);
String[] dirs = input.split("\n");
int longest = 0;
for (String dir : dirs) {
int level = dir.lastIndexOf("\t") + 1;
int curLen = dir.length() - level;
if (dir.contains(".")) {
longest = Math.max(longest, levelMap.get(level - 1) + curLen);
} else {
levelMap.put(level, levelMap.get(level - 1) + curLen + 1); // +1 for the slash
}
}
return longest;
}
}
- ← Previous
527. Word Abbreviation - Next →
346. Moving Average from Data Stream