文件的最长绝对路径
class Solution {
public int lengthLongestPath(String input) {
int n=input.length();
int count=0;
LinkedList<Integer> record=new LinkedList<>();
int i=0;
int start=i;
while(i<n&&input.charAt(i)!='\n'){
i++;
}
record.addLast(i-start);
count+=i-start;
int ans=0;
boolean flag=true;
String str=input.substring(start,i);
if(str.contains(".")){
flag=true;
}else{
flag=false;
}
while(i<n){
i++;//把\n跳过
//读取\t
int t=0;
while(i<n&&input.charAt(i)=='\t'){
i++;
t++;
}
//读取文件名
start=i;
while(i<n&&input.charAt(i)!='\n'){
i++;
}
if(t!=record.size()){
if(flag){
ans=Math.max(count+record.size()-1,ans);
}
while(t!=record.size()){
int tmp=record.removeLast();
count-=tmp;
}
}
str=input.substring(start,i);
if(str.contains(".")){
flag=true;
}else{
flag=false;
}
record.addLast(i-start);
count+=i-start;
}
if(flag){
ans=Math.max(count+record.size()-1,ans);
}
return ans;
}
}