Check if a string is Isogram or not

Given a word or phrase, check if it is isogram or not. An Isogram is a word in which no letter occurs more than once.

Examples:

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



C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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 "))                                               

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right



Output:

True
True
False
False

Another approach : In this, count of characters of string are stored in hashmap, and wherever it is found to be greater than 1 for any char, return false else return true.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Output :

False
True

// Thanks Sahil Bansal for suggesting the above method.

This article is contributed by Sakshi Tiwari. If you like GeeksforGeeks (We know you do!) and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up



Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.