实现JSON解析器最好使用哪种数据结构?我是在一个面试问题中被问到这个问题的
如果用户输入A.B.C程序应返回实现JSON解析器最好使用哪种数据结构?我是在一个面试问题中被问到这个问题的,json,algorithm,data-structures,Json,Algorithm,Data Structures,如果用户输入A.B.C程序应返回“val1”,如果用户输入A.D,则应返回E:{F:“val2”}块。 我回答了两个解决方案,一个是使用HashMap,另一个是使用Trie数据结构。但面试官对答案并不满意。根据采访者的说法,Trie将更复杂地用于这个问题。我可以从Python的角度回答这个问题。上面的结构是一个嵌套字典。例如,您可以执行以下操作: A:{ B:{ C:"val1" }, D:{ E:{ F:&qu
“val1”
,如果用户输入A.D
,则应返回E:{F:“val2”}
块。
我回答了两个解决方案,一个是使用HashMap,另一个是使用Trie数据结构。但面试官对答案并不满意。根据采访者的说法,Trie将更复杂地用于这个问题。我可以从Python的角度回答这个问题。上面的结构是一个嵌套字典。例如,您可以执行以下操作:
A:{
B:{
C:"val1"
},
D:{
E:{
F:"val2"
},
},
G:"val3"
}
如果用户输入是字符串'a.B.C'
,则可以按点(
)将其拆分并返回值
from collections import defaultdict
import json
def my_parser():
return defaultdict(my_parser)
your_data = my_parser()
your_data['A']['B']['C'] = "val1"
your_data['A']['D']['E']['F'] = "val2"
your_data['A']['G'] = "val2"
print(json.dumps(your_data['A']['B'])) # prints {'C': "val1"}
print(json.dumps(your_data)) # prints {A:{B:{C:"val1"},D:{E:{F:"val2"},G:"val3"}}