给定一个有向图的字典,表示嵌套组及其成员,将扁平化结构并返回给定组的所有用户。给定组(iOS)的扁平结构和返回用户
MEMBERS_BY_GROUPS = {
'Group0': {
'NestedGroups': ['Group3'],
'Members': ['User0', 'User1']
},
'Group1': {
'NestedGroups': ['Group3'],
'Members': ['User2', 'User3', 'User4']
},
'Group2': {
'NestedGroups': ['Group3', 'Group5'],
'Members': ['User4', 'User5']
},
'Group3': {
'NestedGroups': ['Group4'],
'Members': ['User6', 'User7']
},
'Group4': {
'NestedGroups': [],
'Members': ['User8', 'User9']
},
'Group5': {
'NestedGroups': [],
'Members': ['User10', 'User11']
}
}
def flattenGroup(members_by_groups, group_name): // (MEMBERS_BY_GROUPS, 'Group2') -> ['User4', 'User5', 'User6', 'User7', 'User8', 'User9',, 'User10', 'User11']
我被赋予这个作为一个任务,我不知道如何回答。我如何去做这件事?
你有没有做过任何你可以展示的尝试?看起来您需要编写一个接受字典和组名的函数,并返回一个包含该组成员和嵌套组(以及嵌套组中的嵌套组等)的数组。虽然你不必使用递归,但它可能是一个合理的方法。也看看NSMutableSet作为一种简单的方法来避免重复 – Paulw11
我试图但我不知道哪里开始诚实。 –
那么,首先实现一个接受字典和字符串并返回数组的函数。在那个函数中需要创建一个包含组成员的新数组。然后,您需要查看该组是否有任何嵌套组。如果是这样,那么得到*那个*组的成员 - 提示你可以使用'flattenGroup'来做到这一点 - 并将这些成员添加到数组中。 – Paulw11