package leetcode;
import java.util.*;
public class Solution {
public NestedInteger deserialize(String s) {
if(s.isEmpty())
return null;
if(s.charAt(0)!='[')
return new NestedInteger(Integer.valueOf(s));
int l=0;//l是开始下表
int r;//r是结束下标加1
NestedInteger curr=null;
Stack<NestedInteger> ss=new Stack<>();
for(r=0;r<s.length();r++){
char c=s.charAt(r);
if(c=='['){
if(curr!=null)
ss.push(curr);
curr=new NestedInteger();
l=r+1;
}
else if(c==']'){
String num=s.substring(l, r);
if(!num.isEmpty()){
curr.add(new NestedInteger(Integer.valueOf(num)));
}
if(!ss.isEmpty()){
NestedInteger temp=ss.pop();
temp.add(curr);
curr=temp;
l=r+1;
}
}
else if(c==','){
if(s.charAt(r-1)!=']')
{
String temp=s.substring(l,r);
if(!temp.isEmpty()){
curr.add(new NestedInteger(Integer.valueOf(temp)));
}
}
l=r+1;
}
}
return curr;
}
}
385. Mini Parser
最新推荐文章于 2021-09-13 16:37:52 发布