Skip to content

Instantly share code, notes, and snippets.

@laekov
Created August 12, 2019 18:25
Show Gist options
  • Save laekov/af4246364997d468f4f87ead70db5e3f to your computer and use it in GitHub Desktop.
Save laekov/af4246364997d468f4f87ead70db5e3f to your computer and use it in GitHub Desktop.
class Solution:
def mostVisitedPattern(self, username: List[str], timestamp: List[int], website: List[str]) -> List[str]:
userlists = dict()
for u, t, w in zip(username, timestamp, website):
if u not in userlists:
userlists[u] = []
userlists[u].append((t, w))
pattern_counts = dict()
for u in userlists:
patterns = list()
vis = sorted(userlists[u], key=lambda x: x[0])
lv = len(vis)
for i in range(lv):
for j in range(i + 1, lv):
for k in range(j + 1, lv):
patterns.append((vis[i][1], vis[j][1], vis[k][1]))
for p in set(patterns):
if p not in pattern_counts:
pattern_counts[p] = 1
else:
pattern_counts[p] += 1
res = None
for p in pattern_counts:
if (res is None
or pattern_counts[p] > pattern_counts[res]
or pattern_counts[p] == pattern_counts[res] and p < res):
res = p
return res
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment