假设我有一个词典,dict是dictonary以dictonary为值
dict = {'**Leon**':{'Name':'Leon L','**follow**':['Apple', 'PPy','Jack','Tommy']},'**Jack**':{'name':'Jack Y','**follow**':['Apple','Cruise','Jay']},'**Tommy**':{'name':'Tommy T','**follow**':['Hill']},'**Apple**':{'name':'Apple A','**follow**':['Jack']},**'Cruise'**:{'name':'Cruise L','**follow**':['Jay']}}
**follow**
表示此用户所遵循的用户,例如:
Leon跟随Apple,PPy,Jack,Tommy
我有查询文件,里面有任务。我们需要完成任务并返回一个用户名列表(用户名是dict中的键,例如'Leon','Jack','Tommy'),该文件的格式为:
SEARCH
Leon
follow
follow-by # there might be many more follow, and follow-by
FILTER
name-include Leon
follow Apple # format: keyword follow, a space and a username. same apply to follow-by username
follow-by Leon # there might be more name-include, , follow username, follow by username
查询文件的含义: SEARCH和FILTER是关键字。 SEARCH之后的行是起始用户名(我们需要将其放在列表中,让我们将列表命名为user_list)。搜索规范有两个步骤(在这种情况下):
过滤器规范(在本例中):
任何人都可以帮我编写一个可以完成任务的程序吗?
答案 0 :(得分:0)
我建议使用状态机,或者更具体地说pushdown automata。您将使用数据dict初始化机器,然后对于输入文件中的每一行,您将转换到新状态并执行指定的工作,将结果存储在堆栈中。每个步骤都可以访问上一步返回的数据。