Skip to content
Related Articles

Related Articles

Check whether a given string is Heterogram or not
  • Last Updated : 27 Jul, 2018

Given a string S. The task is to check whether a the given string is Heterogram or not. A heterogram is a word, phrase, or sentence in which no letter of the alphabet occurs more than once.

Examples:

Input : S = "the big dwarf only jumps"
Output : Yes
Each alphabet in the string S is occurred
only once.

Input : S = "geeksforgeeks" 
Output : No
Since alphabet 'g', 'e', 'k', 's' occurred
more than once.

The idea is to make a hash array of size 26, initalised to 0. Traverse each alphabet of the given string and mark 1 in the corresponding hash array position if that alphabet is encounter first time, else return false.

Below is the implementation of this approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP Program to check whether the given string is Heterogram or not.
#include<bits/stdc++.h>
using namespace std;
  
bool isHeterogram(char s[], int n)
{
    int hash[26] = { 0 };
      
    // traversing the string.
    for (int i = 0; i < n; i++)
    {
        // ignore the space
        if (s[i] != ' ')
        {
            // if already encountered
            if (hash[s[i] - 'a'] == 0)
                hash[s[i] - 'a'] = 1;
                  
            // else return false.
            else
                return false;
        }
    }
      
    return true;
}
  
// Driven Program
int main()
{
    char s[] = "the big dwarf only jumps";
    int n = strlen(s);
    (isHeterogram(s, n))?(cout << "YES"):(cout << "NO");
    return 0;

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program to check whether the
// given string is Heterogram or not.
class GFG {
          
    static boolean isHeterogram(String s, int n)
    {
        int hash[] = new int[26];
          
        // traversing the string.
        for (int i = 0; i < n; i++)
        {
            // ignore the space
            if (s.charAt(i) != ' ')
            {
                // if already encountered
                if (hash[s.charAt(i) - 'a'] == 0)
                    hash[s.charAt(i) - 'a'] = 1;
                      
                // else return false.
                else
                    return false;
            }
        }
          
        return true;
    }
      
// Driver code 
public static void main (String[] args)
{
    String s = "the big dwarf only jumps";
    int n = s.length();
      
    if(isHeterogram(s, n))
        System.out.print("YES");
    else
        System.out.print("NO");
}
}
  
// This code is contributed by Anant Agarwal.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to check
# whether the given
# string is Heterogram 
# or not.
  
def isHeterogram(s, n):
    hash = [0] * 26
      
    # traversing the
    # string.
    for i in range(n):
          
        # ignore the space
        if s[i] != ' ':
              
            # if already 
            # encountered
            if hash[ord(s[i]) - ord('a')] == 0:
                hash[ord(s[i]) - ord('a')] = 1
              
            # else return false.
            else:
                return False
      
    return True
  
# Driven Code
s = "the big dwarf only jumps"
n = len(s)
  
print("YES" if isHeterogram(s, n) else "NO"
  
# This code is contributed by "Sharad_Bhardwaj".

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Program to check whether the
// given string is Heterogram or not.
using System;
  
class GFG {
          
    static bool isHeterogram(string s, int n)
    {
        int []hash = new int[26];
          
        // traversing the string.
        for (int i = 0; i < n; i++)
        {
            // ignore the space
            if (s[i] != ' ')
            {
                // if already encountered
                if (hash[s[i] - 'a'] == 0)
                    hash[s[i] - 'a'] = 1;
                      
                // else return false.
                else
                    return false;
            }
        }
          
        return true;
    }
      
    // Driver code 
    public static void Main ()
    {
        string s = "the big dwarf only jumps";
        int n = s.Length;
          
        if(isHeterogram(s, n))
            Console.WriteLine("YES");
        else
            Console.WriteLine("NO");
    }
}
  
// This code is contributed by Vt_m.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP Program to check 
// whether the given string
// is Heterogram or not.
  
function isHeterogram($s, $n)
{
    $hash = array();
    for($i = 0; $i < 26; $i++)
        $hash[$i] = 0;
      
    // traversing the string.
    for ($i = 0; $i < $n; $i++)
    {
        // ignore the space
        if ($s[$i] != ' ')
        {
            // if already encountered
            if ($hash[ord($s[$i]) - 
                      ord('a')] == 0)
                $hash[ord($s[$i]) - 
                      ord('a')] = 1;
                  
            // else return false.
            else
                return false;
        }
    }     
    return true;
}
  
// Driven Code
$s = "the big dwarf only jumps";
$n = strlen($s);
if (isHeterogram($s, $n))
    echo ("YES");
else
    echo ("NO");
      
// This code is contributed by
// Manish Shaw(manishshaw1)
?>

chevron_right



Output:

YES

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :