Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def transitive_cloure(array):
- new_list = [set(array.pop(0))] # initialize first set with value of index `0`
- for item in array:
- for i, s in enumerate(new_list):
- if any(x in s for x in item):
- new_list[i] = new_list[i].union(item)
- break
- else:
- new_list.append(set(item))
- return new_list
- def countGroups(arr):
- inp = [list(x) for x in arr]
- size = len(inp)
- relationships = []
- for i in range(size):
- for j in range(size):
- if (inp[i][j] == '1'):
- if ((i,j) not in relationships) and ((j,i) not in relationships):
- relationships.append((i,j))
- to_remove_elts = []
- for (i, j) in relationships:
- if i != j: # it is already part of a couple
- to_remove_elts.append((i, i))
- to_remove_elts.append((j, j))
- for item in to_remove_elts:
- if item in relationships:
- relationships.remove(item)
- transitive_relationships = transitive_cloure(relationships)
- print(transitive_relationships)
- return len(transitive_relationships)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement