You are given a 2D string array responses where each responses[i] is an array of strings representing survey responses from the ith day.
Return the most common response across all days after removing duplicate responses within each responses[i]. If there is a tie, return the lexicographically smallest response.
Example 1:
Input: responses = [["good","ok","good","ok"],["ok","bad","good","ok","ok"],["good"],["bad"]]
Output: "good"
Explanation:
responses = [["good", "ok"], ["ok", "bad", "good"], ["good"], ["bad"]]."good" appears 3 times, "ok" appears 2 times, and "bad" appears 2 times."good" because it has the highest frequency.Example 2:
Input: responses = [["good","ok","good"],["ok","bad"],["bad","notsure"],["great","good"]]
Output: "bad"
Explanation:
responses = [["good", "ok"], ["ok", "bad"], ["bad", "notsure"], ["great", "good"]]."bad", "good", and "ok" each occur 2 times."bad" because it is the lexicographically smallest amongst the words with the highest frequency.
Constraints:
1 <= responses.length <= 10001 <= responses[i].length <= 10001 <= responses[i][j].length <= 10responses[i][j] consists of only lowercase English letters