2
def __init__(self, name, time, amount, city):5
self.amount = int(amount)9
from collections import defaultdict13
def invalidTransactions(self, transactions):15
Transaction(*transaction.split(",")) for transaction in transactions17
transactions.sort(key=lambda t: t.time) # O(nlogn) time19
trans_indexes = defaultdict(list)20
for i, t in enumerate(transactions): # O(n) time21
trans_indexes[t.name].append(i)24
for name, indexes in trans_indexes.items(): # O(n) time26
for i, t_index in enumerate(indexes):27
t = transactions[t_index]29
res.append("{},{},{},{}".format(t.name, t.time, t.amount, t.city))32
left <= len(indexes) - 233
and transactions[indexes[left]].time < t.time - 6037
right <= len(indexes) - 238
and transactions[indexes[right + 1]].time <= t.time + 6041
for i in range(left, right + 1): # O(120) time42
if transactions[indexes[i]].city != t.city:44
"{},{},{},{}".format(t.name, t.time, t.amount, t.city)