Class Solution

  • All Implemented Interfaces:

    
    public final class Solution
    
                        

    3433 - Count Mentions Per User.

    Medium

    You are given an integer numberOfUsers representing the total number of users and an array events of size n x 3.

    Each events[i] can be either of the following two types:

    • Message Event: <code>"MESSAGE", "timestamp<sub>i</sub>", "mentions_string<sub>i</sub>"</code>

    • Offline Event: <code>"OFFLINE", "timestamp<sub>i</sub>", "id<sub>i</sub>"</code>

    Return an array mentions where mentions[i] represents the number of mentions the user with id i has across all MESSAGE events.

    All users are initially online, and if a user goes offline or comes back online, their status change is processed before handling any message event that occurs at the same timestamp.

    Note that a user can be mentioned multiple times in a single message event, and each mention should be counted separately.

    Example 1:

    Input: numberOfUsers = 2, events = \[\["MESSAGE","10","id1 id0"],"OFFLINE","11","0","MESSAGE","71","HERE"]

    Output: 2,2

    Explanation:

    Initially, all users are online.

    At timestamp 10, id1 and id0 are mentioned. mentions = [1,1]

    At timestamp 11, id0 goes offline.

    At timestamp 71, id0 comes back online and "HERE" is mentioned. mentions = [2,2]

    Example 2:

    Input: numberOfUsers = 2, events = \[\["MESSAGE","10","id1 id0"],"OFFLINE","11","0","MESSAGE","12","ALL"]

    Output: 2,2

    Explanation:

    Initially, all users are online.

    At timestamp 10, id1 and id0 are mentioned. mentions = [1,1]

    At timestamp 11, id0 goes offline.

    At timestamp 12, "ALL" is mentioned. This includes offline users, so both id0 and id1 are mentioned. mentions = [2,2]

    Example 3:

    Input: numberOfUsers = 2, events = \[\["OFFLINE","10","0"],"MESSAGE","12","HERE"]

    Output: 0,1

    Explanation:

    Initially, all users are online.

    At timestamp 10, id0 goes offline.

    At timestamp 12, "HERE" is mentioned. Because id0 is still offline, they will not be mentioned. mentions = [0,1]

    Constraints:

    • 1 &lt;= numberOfUsers &lt;= 100

    • 1 &lt;= events.length &lt;= 100

    • events[i].length == 3

    • events[i][0] will be one of MESSAGE or OFFLINE.

    • <code>1 <= int(events1) <= 10<sup>5</sup></code>

    • The number of id&lt;number&gt; mentions in any "MESSAGE" event is between 1 and 100.

    • 0 &lt;= &lt;number&gt; &lt;= numberOfUsers - 1

    • It is guaranteed that the user id referenced in the OFFLINE event is online at the time the event occurs.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      Solution()
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final IntArray countMentions(Integer numberOfUsers, List<List<String>> events)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait