Comprobar si una string es Isogram o no

Dada una palabra o frase, comprueba si es isograma o no. Un isograma es una palabra en la que ninguna letra aparece más de una vez.

Ejemplos: 

Input : Machine
Output : True
"Machine" does not have any character repeating, 
it is an Isogram

Input : Geek
Output : False
"Geek" has 'e' as repeating character, 
it is not an Isogram

Implementación:

C++

// C++ program to check
// if a given string is isogram or not
#include <bits/stdc++.h>
using namespace std;
 
// Function to check
// if a given string is isogram or not
string is_isogram(string str)
{
    int len = str.length();
 
    // Convert the string in lower case letters
    for (int i = 0; i < len; i++)
        str[i] = tolower(str[i]);
 
    sort(str.begin(), str.end());
 
    for (int i = 0; i < len; i++) {
        if (str[i] == str[i + 1])
            return "False";
    }
    return "True";
}
 
// driver program
int main()
{
    string str1 = "Machine";
    cout << is_isogram(str1) << endl;
 
    string str2 = "isogram";
    cout << is_isogram(str2) << endl;
 
    string str3 = "GeeksforGeeks";
    cout << is_isogram(str3) << endl;
 
    string str4 = "Alphabet";
    cout << is_isogram(str4) << endl;
 
    return 0;
}
 
// Contributed by nuclode

Java

// Java program to check
// if a given string is isogram or not
import java.io.*;
import java.util.*;
 
class GFG {
    // Function to check
    // if a given string is isogram or not
    static boolean is_isogram(String str)
    {
        // Convert the string in lower case letters
        str = str.toLowerCase();
        int len = str.length();
 
        char arr[] = str.toCharArray();
 
        Arrays.sort(arr);
        for (int i = 0; i < len - 1; i++) {
            if (arr[i] == arr[i + 1])
                return false;
        }
        return true;
    }
 
    // driver program
    public static void main(String[] args)
    {
        String str1 = "Machine";
        System.out.println(is_isogram(str1));
 
        String str2 = "isogram";
        System.out.println(is_isogram(str2));
 
        String str3 = "GeeksforGeeks";
        System.out.println(is_isogram(str3));
 
        String str4 = "Alphabet";
        System.out.println(is_isogram(str4));
    }
}
 
// Contributed by Pramod Kumar

Python3

# Python program to check
# if a word is isogram or not
def is_isogram(word):
 
    # Convert the word or sentence in lower case letters.
    clean_word = word.lower()
 
    # Make an empty list to append unique letters
    letter_list = []
 
    for letter in clean_word:
 
        # If letter is an alphabet then only check
        if letter.isalpha():
            if letter in letter_list:
                return False
            letter_list.append(letter)
 
    return True
 
if __name__ == '__main__':
  print(is_isogram("Machine"))                            
  print(is_isogram("isogram"))                        
  print(is_isogram("GeeksforGeeks"))                    
  print(is_isogram("Alphabet "))                                              

C#

// C# program to check if a given
// string is isogram or not
using System;
 
public class GFG {
     
    // Function to check if a given
    // string is isogram or not
    static bool is_isogram(string str)
    {
        // Convert the string in lower case letters
        str = str.ToLower();
        int len = str.Length;
 
        char[] arr = str.ToCharArray();
 
        Array.Sort(arr);
        for (int i = 0; i < len - 1; i++) {
            if (arr[i] == arr[i + 1])
                return false;
        }
        return true;
    }
 
    // driver program
    public static void Main()
    {
        string str1 = "Machine";
        Console.WriteLine(is_isogram(str1));
 
        string str2 = "isogram";
        Console.WriteLine(is_isogram(str2));
 
        string str3 = "GeeksforGeeks";
        Console.WriteLine(is_isogram(str3));
 
        string str4 = "Alphabet";
        Console.WriteLine(is_isogram(str4));
    }
}
 
// This code is contributed by Sam007

Javascript

<script>
    // Javascript program to check if a given
    // string is isogram or not
     
    // Function to check if a given
    // string is isogram or not
    function is_isogram(str)
    {
        // Convert the string in lower case letters
        str = str.toLowerCase();
        let len = str.length;
  
        let arr = str.split('');
  
        arr.sort();
        for (let i = 0; i < len - 1; i++) {
            if (arr[i] == arr[i + 1])
                return false;
        }
        return true;
    }
     
    let str1 = "Machine";
    if(is_isogram(str1))
    {
        document.write("True" + "</br>");
    }
    else{
        document.write("False" + "</br>");
    }
 
    let str2 = "isogram";
    if(is_isogram(str2))
    {
        document.write("True" + "</br>");
    }
    else{
        document.write("False" + "</br>");
    }
 
    let str3 = "GeeksforGeeks";
    if(is_isogram(str3))
    {
        document.write("True" + "</br>");
    }
    else{
        document.write("False" + "</br>");
    }
 
    let str4 = "Alphabet";
    if(is_isogram(str4))
    {
        document.write("True" + "</br>");
    }
    else{
        document.write("False" + "</br>");
    }
     
    // This code is contributed by suresh07.
</script>
Producción

True
True
False
False

Otro enfoque: en esto, el recuento de caracteres de la string se almacena en hashmap, y siempre que sea mayor que 1 para cualquier carácter, devuelve falso; de lo contrario, devuelve verdadero. 

Implementación:

C++

// CPP code to check string is isogram or not
#include <bits/stdc++.h>
 
using namespace std;
 
// function to check isogram
bool check_isogram(string str)
{
 
    int length = str.length();
    int mapHash[26] = { 0 };
 
    // loop to store count of chars and check if it is greater than 1
    for (int i = 0; i < length; i++)
    {
        mapHash[str[i] - 'a']++;
 
        // if count > 1, return false
        if (mapHash[str[i]-'a'] > 1)
        {
            return false;
        }
    }
 
    return true;
}
 
// Driver code
int main()
{
    string str = "geeks";
    string str2 = "computer";
 
    // checking str as isogram
    if (check_isogram(str)) {
        cout << "True" << endl;
    }
    else {
        cout << "False" << endl;
    }
 
    // checking str2 as isogram
    if (check_isogram(str2)) {
        cout << "True" << endl;
    }
    else {
        cout << "False" << endl;
    }
 
    return 0;
}

Java

// Java code to check string is isogram or not
class GFG
{
 
// function to check isogram
static boolean check_isogram(String str)
{
 
    int length = str.length();
    int mapHash[] = new int[26];
 
    // loop to store count of chars and
    // check if it is greater than 1
    for (int i = 0; i < length; i++)
    {
        mapHash[str.charAt(i) - 'a']++;
 
        // if count > 1, return false
        if (mapHash[str[i]-'a'] > 1)
        {
            return false;
        }
    }
 
    return true;
}
 
// Driver code
public static void main(String[] args)
{
    String str = "geeks";
    String str2 = "computer";
 
    // checking str as isogram
    if (check_isogram(str))
        System.out.println("True");
    else
        System.out.println("False");
 
    // checking str2 as isogram
    if (check_isogram(str2))
            System.out.println("True");
    else
        System.out.println("False");
    }
}
 
// This code contributed by Rajput-Ji

Python3

# Python3 code to check string is isogram or not
 
# function to check isogram
def check_isogram(string) :
 
    length = len(string);
    mapHash = [0] * 26;
 
    # loop to store count of chars
    # and check if it is greater than 1
    for i in range(length) :
     
        mapHash[ord(string[i]) - ord('a')] += 1;
 
        # if count > 1, return false
        if (mapHash[ord(string[i]) - ord('a')] > 1) :
         
            return False;
 
    return True;
 
# Driver code
if __name__ == "__main__" :
 
    string = "geeks";
    string2 = "computer";
 
    # checking str as isogram
    if (check_isogram(string)) :
        print("True");
    else :
        print("False");
 
    # checking str2 as isogram
    if (check_isogram(string2)) :
        print("True")
 
    else :
        print("False");
 
# This code is contributed by AnkitRai01

C#

// C# code to check string is isogram or not
using System;
public class GFG
{
  
// function to check isogram
static bool check_isogram(String str)
{
  
    int length = str.Length;
    int []mapHash = new int[26];
  
    // loop to store count of chars and
    // check if it is greater than 1
    for (int i = 0; i < length; i++)
    {
        mapHash[str[i] - 'a']++;
  
        // if count > 1, return false
        if (mapHash[str[i] - 'a'] > 1)
        {
            return false;
        }
    }
  
    return true;
}
  
// Driver code
public static void Main(String[] args)
{
    String str = "geeks";
    String str2 = "computer";
  
    // checking str as isogram
    if (check_isogram(str))
        Console.WriteLine("True");
    else
        Console.WriteLine("False");
  
    // checking str2 as isogram
    if (check_isogram(str2))
            Console.WriteLine("True");
    else
        Console.WriteLine("False");
    }
}
 
// This code has been contributed by 29AjayKumar

Javascript

<script>
    // Javascript code to check string is isogram or not
     
    // function to check isogram
    function check_isogram(str)
    {
 
        let length = str.length;
        let mapHash = new Array(26);
        mapHash.fill(0);
 
        // loop to store count of chars and
        // check if it is greater than 1
        for (let i = 0; i < length; i++)
        {
            mapHash[str[i].charCodeAt() - 'a'.charCodeAt()]++;
 
            // if count > 1, return false
            if (mapHash[str[i].charCodeAt() - 'a'.charCodeAt()] > 1)
            {
                return false;
            }
        }
 
        return true;
    }
     
    let str = "geeks";
    let str2 = "computer";
    
    // checking str as isogram
    if (check_isogram(str))
        document.write("True" + "</br>");
    else
        document.write("False" + "</br>");
    
    // checking str2 as isogram
    if (check_isogram(str2))
          document.write("True" + "</br>");
    else
        document.write("False" + "</br>");
     
    // This code is contributed by divyeshrabadiya07.
</script>
Producción

False
True

// Gracias Sahil Bansal por sugerir el método anterior. 
 

Este artículo es una contribución de Sakshi Tiwari . Si te gusta GeeksforGeeks (¡sabemos que te gusta!) y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *