Sort by

recency

|

2434 Discussions

|

  • + 0 comments

    using javascript

    let stringListOb = {}; let queryListOb = {};

       stringList.forEach(st=>{
           stringListOb[st] = (stringListOb[st] || 0)+1;       
    })  
    queries.forEach(q=>{
        if(stringListOb[q]){
            queryListOb[q] =stringListOb[q]
        }else{
            queryListOb[q] = 0
        }
    })
    return Object.values(queryListOb);
    
  • + 0 comments

    My C++ solution:

    vector<int> matchingStrings(vector<string> stringList, vector<string> queries) {
        map<string, int> mpp;
        vector<int> res;
        for(string s: stringList) mpp[s]++;
        for(string s: queries) res.push_back(mpp[s]);
        return res;
    }
    
  • + 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;
    }