Compruebe si todas las strings dadas son isogramas o no

Dada una array arr que contiene N strings, la tarea es verificar si todas las strings son isogramas o no. Si lo son, escriba , 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:

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>
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *