Give a list of events denoting suspicious activities as
suspicious_activities=[
("Brad","San Franciso","withdraw")
]Construct a hypothesis by using this known list of suspicious activities to flag a new set of activities received in input as a factor of 'k' matching attributes on those events.
given k=2
input_activities =[
("Aaron", "London","withdraw"),
("Diana", "London","withdraw"),
("Diana", "San Franciso","withdraw"),
("Kay","London","Deposit"),
("Kay","London","withdraw")
] each new suspicious activity is print /listed on a new line
Expected output of above example
1. ("Aaron", "London","withdraw")
2. ("Brad","San Franciso","withdraw")
3. ("Diana", "London","withdraw")
4. ("Diana", "San Franciso","withdraw")
5. ("Kay","London","Deposit")
6. ("Kay","London","withdraw")Received this question in first technical screen. At first glance this question looks straight forward involving tuples, comparison of tuples after unpacking and creating new list. Below is the solution I wrote and I m failing to identify underlying pattern here. I didn't clear technical screen to move to next round for very same reason. Posting this question here for broader audience to provide some feedback/pointers.
suspicious_names= set()
suspicious_cities =set()
suspicious_actions =set()
for item in suspicious_activities:
suspicious_names.add(item[0])
suspicious_cities.add(item[1])
suspicious_actions.add(item[2])
k=2
n=len(new_activities)
i=1
while(i<=n):
for item in new_activities:
attributes_matched=0
if item[0] in suspicious_names:
attributes_matched +=1
if item[1] in suspicious_cities:
attributes_matched +=1
if item[2] in suspicious_actions:
attributes_matched +=1
if attributes_matched >= k:
suspicious_names.add(item[0])
suspicious_cities.add(item[1])
suspicious_actions.add(item[2])
if item not in suspicious_activities:
suspicious_activities.append(tuple(item))
i+=1
print("new list of suspicious_activities below")
for item in suspicious_activities:
print(item)