Sort by

recency

|

2432 Discussions

|

  • + 0 comments

    My Java solution:

    public static List<Integer> matchingStrings(List<String> stringList, List<String> queries) {
            // Write your code here
            Map<String, Integer> stringCount = new HashMap<>();
            stringList.forEach(entry -> stringCount.compute(entry, (k, v) -> v == null ? 1 : v + 1));
            return queries.stream().map(query -> stringCount.getOrDefault(query, 0)).collect(Collectors.toList());
        }
    
  • + 0 comments

    c# linq, yield

    public static IEnumerable matchingStrings(List stringList, List queries) {
    foreach (var q in queries) { yield return stringList.Count(j=>j==q); } }

  • + 0 comments

    Here's how we can do it in c#

    public static List matchingStrings(List stringList, List queries) { List totalCount = new List();

        foreach(var query in queries){
            int count = 0;
            for(int i = 0; i < stringList.Count; i++){
                if(query == stringList[i]){
                    count++;
                }
            }
            totalCount.Add(count);
        }
    
        return totalCount;
    }
    
  • + 0 comments

    Python: allocate extra space for linear runtime

    from collections import Counter
    
    def matchingStrings(stringList, queries):
        # Write your code here
        counts = Counter(stringList)
        return [counts[query] for query in queries]
    
  • + 0 comments

    Python

    def matchingStrings(stringList, queries):
        return [stringList.count(each) if each in stringList else 0 for each in queries]