这道题给我最大的启示就是,做题之前!!一定要!决定要!先弄懂需求,分析需求!!
一定要对要求明确!!
// 文件名 至少一有一个点和后缀
// 目录名 不能含有点
public class Solution {
public int lengthLongestPath(String input) {
String[] strs = input.split("\n");
int size = strs.length;
int[] array = new int[size]; // max is size
int maxlev = 0;
//
for(int i=0;i<size;i++){
int lev = NumsOfT(strs[i]);
array[i] = lev;
if(lev > maxlev) maxlev = lev;
}
int[] lengths = new int[size];
int[] maxSum = new int[maxlev+1];
maxSum[0] = strs[0].length();
lengths[0] = strs[0].length();
if(size == 1) return maxSum[0];
for(int i=1;i<size;i++){
int lev = array[i];
maxSum[lev] = maxSum[lev-1]+strs[i].length()-lev+1;
if(strs[i].contains("."))
lengths[i] = maxSum[lev];
}
//
int maxlength = 0;
for(int i=0;i<size;i++){
if(maxlength < lengths[i]) maxlength = lengths[i];
}
return maxlength;
}
private int NumsOfT(String str){
// this spacial tab must kown
int i = 0;
// int j = 1;
int size = str.length();
char[] charStr = str.toCharArray();
int count = 0;
while(i < size){
if(charStr[i] == '\t'){ // Point!!!
count++;
i++;
} else {
break;
}
}
return count;
}
}
这道题,我的没有过4空格的测试样例