 GeeksforGeeks App
Open App Browser
Continue

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

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 ``using` `namespace` `std;` `// Function to count the number of strings``// that does not contain any character of string str``int` `allowedStrings(vector& 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 arr``        ``= { ``"abcd"``, ``"hijk"``, ``"xyz"``, ``"ayt"` `};``    ``string str = ``"apple"``;``    ``cout << allowedStrings(arr, str);``}`

## Java

 `/*package whatever //do not write package name here */``import` `java.io.*;``import` `java.util.*;` `class` `GFG {` `  ``// Function to count the number of strings``  ``// that does not contain any character of string str``  ``public` `static` `int` `allowedStrings(List arr,``                                   ``String str)``  ``{``    ``int` `ans = ``0``;``    ``Set st = ``new` `HashSet();` `    ``char``[] chararray = str.toCharArray();``    ``for` `(Character x : chararray) {``      ``st.add(x);``    ``}` `    ``for` `(``int` `i = ``0``; i < arr.size(); i++) {``      ``String x = arr.get(i);``      ``boolean` `allowed = ``true``;``      ``char``[] chararray2 = x.toCharArray();``      ``for` `(Character y : chararray2) {` `        ``// If the character is present in st``        ``if` `(st.contains(y)) {``          ``allowed = ``false``;``          ``break``;``        ``}``      ``}` `      ``// If the string doesn't``      ``// have any character of st``      ``if` `(allowed) {``        ``ans += ``1``;``      ``}``    ``}` `    ``return` `ans;``  ``}` `  ``public` `static` `void` `main(String[] args)``  ``{``    ``List arr = ``new` `ArrayList();``    ``arr.add(``"abcd"``);``    ``arr.add(``"hijk"``);``    ``arr.add(``"xyz"``);``    ``arr.add(``"ayt"``);``    ``String str = ``"apple"``;``    ``System.out.println(allowedStrings(arr, str));``  ``}``}` `// This code is contributed by akashish__`

## 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.`

## C#

 `using` `System;``using` `System.Collections.Generic;` `public` `class` `GFG{` `  ``// Function to count the number of strings``  ``// that does not contain any character of string str``  ``public` `static` `int` `allowedStrings(List arr,``                                   ``String str)``  ``{``    ``int` `ans = 0;``    ``HashSet<``char``> st = ``new` `HashSet<``char``>();` `    ``for``(``int` `i=0;i arr = ``new` `List();``    ``arr.Add(``"abcd"``);``    ``arr.Add(``"hijk"``);``    ``arr.Add(``"xyz"``);``    ``arr.Add(``"ayt"``);``    ``String str = ``"apple"``;``    ``Console.WriteLine(allowedStrings(arr, str)); ` `  ``}``}``// This code is contributed by akashish__`

## Javascript

 ``

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)

Approach:

To solve this problem is to iterate through each string in the given array and for each string, iterate through each character in the given string str. If a character in str is found in the current string, then we break the loop and move to the next string in the array. If none of the characters in str are found in the current string, then we increment a counter variable that keeps track of the number of strings that do not contain any character of str.

Implementation of the above approach:

## C++

 `// C++ code for the above approach` `#include ``using` `namespace` `std;` `// Function to count the number of strings``// that does not contain any character of string str``int` `allowedStrings(vector& arr, string str)``{``    ``int` `count = 0;``    ``for` `(string s : arr) {``        ``bool` `flag = ``true``;``        ``for` `(``char` `c : str) {``            ``if` `(s.find(c) != string::npos) {``                ``flag = ``false``;``                ``break``;``            ``}``        ``}``        ``if` `(flag) {``            ``count++;``        ``}``    ``}``    ``return` `count;``}` `// Driver Code``int` `main()``{``    ``vector arr``        ``= { ``"abcd"``, ``"hijk"``, ``"xyz"``, ``"ayt"` `};``    ``string str = ``"apple"``;``    ``cout << allowedStrings(arr, str);``}`

## Java

 `import` `java.util.*;` `public` `class` `Main {``    ``// Function to count the number of strings``    ``// that does not contain any character of string str``    ``public` `static` `int` `allowedStrings(List arr, String str) {``        ``int` `count = ``0``;``        ``for` `(String s : arr) {``            ``boolean` `flag = ``true``;``            ``for` `(``char` `c : str.toCharArray()) {``                ``if` `(s.indexOf(c) != -``1``) {``                    ``flag = ``false``;``                    ``break``;``                ``}``            ``}``            ``if` `(flag) {``                ``count++;``            ``}``        ``}``        ``return` `count;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args) {``        ``List arr = Arrays.asList(``"abcd"``, ``"hijk"``, ``"xyz"``, ``"ayt"``);``        ``String str = ``"apple"``;``        ``System.out.println(allowedStrings(arr, str));``    ``}``}`

## C#

 `using` `System;``using` `System.Collections.Generic;` `public` `class` `MainClass``{``    ``// Function to count the number of strings``    ``// that does not contain any character of string str``    ``public` `static` `int` `allowedStrings(List<``string``> arr, ``string` `str)``    ``{``        ``int` `count = 0;``        ``foreach` `(``string` `s ``in` `arr)``        ``{``            ``bool` `flag = ``true``;``            ``foreach` `(``char` `c ``in` `str)``            ``{``                ``if` `(s.Contains(c))``                ``{``                    ``flag = ``false``;``                    ``break``;``                ``}``            ``}``            ``if` `(flag)``            ``{``                ``count++;``            ``}``        ``}``        ``return` `count;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``List<``string``> arr = ``new` `List<``string``> { ``"abcd"``, ``"hijk"``, ``"xyz"``, ``"ayt"` `};``        ``string` `str = ``"apple"``;``        ``Console.WriteLine(allowedStrings(arr, str));``    ``}``}`

Output

`2`

Time Complexity: O(N*M)

Space Complexity: O(1)

My Personal Notes arrow_drop_up