Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Count of strings that does not contain any character of a given string

  • Last Updated : 23 Dec, 2021

Given an array arr containing N strings and a string str, the task is to find the number of strings that do not contain any character of string str.

Examples:

Input: arr[] = {“abcd”, “hijk”, “xyz”, “ayt”}, str=”apple”
Output: 2
Explanation: “hijk” and “xyz” are the strings that do not contain any character of str

Input: arr[] = {“apple”, “banana”, “pear”}, str=”nil”
Output: 1

Approach: Follow the below steps to solve this problem:



  1. Create a set st and store each character of string str in this set.
  2. Create a variable ans to store the number of all the required strings.
  3. Now, start traversing on the array and for each string, check if any of its character is present in the set st or not. If it is, then this is not a required string.
  4. If it doesn’t contain any character from the set, increase answer by 1.
  5. Return ans after the loop ends, as the answer to this problem.

Below is the implementation of the above approach:

C++




// C++ code for the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to count the number of strings
// that does not contain any character of string str
int allowedStrings(vector<string>& arr, string str)
{
    int ans = 0;
    unordered_set<char> st;
    for (auto x : str) {
        st.insert(x);
    }
 
    for (auto x : arr) {
        bool allowed = 1;
        for (auto y : x) {
 
            // If the character is present in st
            if (st.find(y) != st.end()) {
                allowed = 0;
                break;
            }
        }
 
        // If the string doesn't
        // have any character of st
        if (allowed) {
            ans += 1;
        }
    }
 
    return ans;
}
 
// Driver Code
int main()
{
    vector<string> arr
        = { "abcd", "hijk", "xyz", "ayt" };
    string str = "apple";
    cout << allowedStrings(arr, str);
}

Python3




# Python 3 code for the above approach
 
# Function to count the number of strings
# that does not contain any character of string str
def allowedStrings(arr, st):
    ans = 0
    st1 = set([])
    for x in st:
        st1.add(x)
 
    for x in arr:
        allowed = 1
        for y in x:
 
            # If the character is present in st1
            if (y in st1):
                allowed = 0
                break
 
        # If the string doesn't
        # have any character of st
        if (allowed):
            ans += 1
 
    return ans
 
# Driver Code
if __name__ == "__main__":
 
    arr = ["abcd", "hijk", "xyz", "ayt"]
    st = "apple"
    print(allowedStrings(arr, st))
 
    # This code is contributed by ukasp.

Javascript




<script>
// Javascript code for the above approach
 
// Function to count the number of strings
// that does not contain any character of string str
function allowedStrings(arr, str)
{
    let ans = 0;
    let st = new Set();
    for (x of str) {
        st.add(x);
    }
 
    for (x of arr) {
        let allowed = 1;
        for (y of x) {
 
            // If the character is present in st
            if (st.has(y)) {
                allowed = 0;
                break;
            }
        }
 
        // If the string doesn't
        // have any character of st
        if (allowed) {
            ans += 1;
        }
    }
 
    return ans;
}
 
// Driver Code
 
let arr = ["abcd", "hijk", "xyz", "ayt"];
let str = "apple";
document.write(allowedStrings(arr, str));
 
// This code is contributed by gfgking.
</script>

 
 

Output
2

 

Time Complexity: O(N*M), where N is the size of the array and M is the size of the longest string.
Auxiliary Space: O(N)

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!