Dada una array arr que contiene N strings, la tarea es verificar si todas las strings son isogramas o no. Si lo son, escriba Sí , de lo contrario No .
Un isograma es una palabra en la que ninguna letra aparece más de una vez.
Ejemplos:
Entrada: arr[] = {“abcd”, “derg”, “erty”}
Salida: SíEntrada: arr[] = {“agka”, “lkmn”}
Salida: No
Enfoque: una string es un isograma si ninguna letra de esa string aparece más de una vez. Ahora para resolver este problema,
- Atraviesa la array arr , y para cada string
- Crea un mapa de frecuencia de caracteres.
- Siempre que cualquier carácter tenga una frecuencia mayor que 1, imprima No y regrese.
- De lo contrario, después de recorrer toda la array, imprima Yes .
A continuación se muestra la implementación del enfoque anterior:
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
Complejidad de tiempo: O(N*M), donde N es el tamaño de la array y M es el tamaño de la string más larga
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por akashjha2671 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA