cswork / libraryOpen practice workspace

Coding questions · Roblox

Find the Most Frequent Log Call

This question evaluates a candidate's ability to perform frequency analysis on sequences, demonstrating competency with data structures for counting occurrences and with algorithmic time and space complexity considerations.

You are given a sequence of application log entries. Each entry contains the name of a function or API call made by the system. Write a function that returns the call that appears most frequently in the logs, along with its frequency.

Example:

  • Input: ["login", "search", "login", "checkout", "search", "login"]
  • Output: ("login", 3)

Follow-up discussion can include how to handle ties, how to return the top-k most frequent calls, and how to process logs in a streaming or large-scale setting.

Find the Most Frequent Log Call

You are given a sequence of application log entries as a list of strings, where each entry is the name of a function or API call made by the system. Return the call that appears most frequently in the logs, along with its frequency, as a pair (call, frequency).

If multiple calls are tied for the highest frequency, return the one that first appears earliest in the log sequence. If the log is empty, return ("", 0).

Example:

  • Input: ["login", "search", "login", "checkout", "search", "login"]
  • Output: ("login", 3)

Follow-up directions you could discuss in an interview: how to handle ties, how to return the top-k most frequent calls, and how to process logs in a streaming or large-scale (multi-machine) setting.

Constraints

  • 0 <= len(logs) <= 10^6
  • Each log entry is a non-empty string of an API/function call name.
  • Ties are broken by earliest first appearance in the log sequence.
  • Return ("", 0) for an empty log.

Hints

  1. Use a hash map to count occurrences of each call in a single pass.
  2. Track each call's first-appearance index so you can break frequency ties deterministically.
  3. For the top-k follow-up, a heap of size k or bucket sort by frequency avoids fully sorting all distinct calls; for streaming/large-scale, think Count-Min Sketch or a map-reduce word-count.