Given an array arr containing N strings, the task is to check if all strings are isogram or not. If they are, print Yes, otherwise No.
An Isogram is a word in which no letter occurs more than once.
Examples:
Input: arr[] = {“abcd”, “derg”, “erty”}
Output: YesInput: arr[] = {“agka”, “lkmn”}
Output: No
Approach: A string is an isogram if no letter in that string appears more than once. Now to solve this problem,
- Traverse the array arr, and for each string
- Create a frequency map of characters.
- Wherever any character has a frequency greater than 1, print No and return.
- Otherwise, after the whole array is traversed, print Yes.
Below is the implementation of the above approach:
C++
// C++ code for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if a string // is an isogram or not bool isIsogram(string s) { vector< int > freq(26, 0); for ( char c : s) { freq++; if (freq > 1) { return false ; } } return true ; } // Function to check if array arr contains // all isograms or not bool allIsograms(vector<string>& arr) { for (string x : arr) { if (!isIsogram(x)) { return false ; } } return true ; } // Driver Code int main() { vector<string> arr = { "abcd" , "derg" , "erty" }; if (allIsograms(arr)) { cout << "Yes" ; return 0; } cout << "No" ; } |
Java
// Java program for the above approach import java.io.*; class GFG { // Function to check if a string // is an isogram or not static boolean isIsogram(String s) { int freq[] = new int [ 26 ]; char S[] = s.toCharArray(); for ( char c : S) { freq++; if (freq > 1 ) { return false ; } } return true ; } // Function to check if array arr contains // all isograms or not static boolean allIsograms(String arr[]) { for (String x : arr) { if (isIsogram(x) == false ) { return false ; } } return true ; } // Driver Code public static void main(String[] args) { String arr[] = { "abcd" , "derg" , "erty" }; if (allIsograms(arr) == true ) { System.out.println( "Yes" ); } else { System.out.println( "No" ); } } } // This code is contributed by Potta Lokesh |
Python3
# Python code for the above approach # Function to check if a string # is an isogram or not def isIsogram (s): freq = [ 0 ] * 26 for c in s: freq[ ord (c) - ord ( 'a' )] + = 1 if (freq[ ord (c) - ord ( 'a' )] > 1 ): return False return True # Function to check if array arr contains # all isograms or not def allIsograms (arr): for x in arr: if ( not isIsogram(x)): return False return True # Driver Code arr = [ "abcd" , "derg" , "erty" ] if (allIsograms(arr)): print ( "Yes" ) else : print ( "No" ) # This code is contributed by Saurabh Jaiswal |
C#
// C# program for the above approach using System; public class GFG { // Function to check if a string // is an isogram or not static bool isIsogram(String s) { int []freq = new int [26]; char []S = s.ToCharArray(); foreach ( char c in S) { freq++; if (freq > 1) { return false ; } } return true ; } // Function to check if array arr contains // all isograms or not static bool allIsograms(String []arr) { foreach (String x in arr) { if (isIsogram(x) == false ) { return false ; } } return true ; } // Driver Code public static void Main(String[] args) { String []arr = { "abcd" , "derg" , "erty" }; if (allIsograms(arr) == true ) { Console.WriteLine( "Yes" ); } else { Console.WriteLine( "No" ); } } } // This code is contributed by 29AjayKumar |
Javascript
<script> // JavaScript code for the above approach // Function to check if a string // is an isogram or not const isIsogram = (s) => { let freq = new Array(26).fill(0); for (let c in s) { freq[s.charCodeAt(c) - 'a' .charCodeAt(0)]++; if (freq[s.charCodeAt(c) - 'a' .charCodeAt(0)] > 1) { return false ; } } return true ; } // Function to check if array arr contains // all isograms or not const allIsograms = (arr) => { for (let x in arr) { if (!isIsogram(arr[x])) { return false ; } } return true ; } // Driver Code let arr = [ "abcd" , "derg" , "erty" ]; if (allIsograms(arr)) document.write( "Yes" ); else document.write( "No" ); // This code is contributed by rakeshsahni </script> |
Yes
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(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!