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 = "neveropen" Output : No Since alphabet 'g', 'e', 'k', 's' occurred more than once.
The idea is to make a hash array of size 26, initialised 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++
// C++ 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 Programint main(){ char s[] = "the big dwarf only jumps"; int n = strlen(s); (isHeterogram(s, n))?(cout << "YES"):(cout << "NO"); return 0;} |
Java
// 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. |
Python3
# 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 Codes = "the big dwarf only jumps"n = len(s)print("YES" if isHeterogram(s, n) else "NO") # This code is contributed by "Sharad_Bhardwaj". |
C#
// 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. |
PHP
<?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)?> |
Javascript
<script>// Javascript program to check whether// the given string is Heterogram or not.function isHeterogram(s, n){ var hash = Array(26).fill(0); // Traversing the string. for(var i = 0; i < n; i++) { // Ignore the space if (s[i] != ' ') { // If already encountered if (hash[s[i].charCodeAt(0) - 'a'.charCodeAt(0)] == 0) hash[s[i].charCodeAt(0) - 'a'.charCodeAt(0)] = 1; // Else return false. else return false; } } return true;}// Driver codevar s = "the big dwarf only jumps";var n = s.length;(isHeterogram(s, n)) ? (document.write("YES")) : (document.write("NO")); // This code is contributed by rutvik_56</script> |
YES
Time Complexity: O(N)
Auxiliary Space: O(26)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Information on that Topic: geeksforgeeks.org/check-whether-a-given-string-is-heterogram-or-not/ […]
… [Trackback]
[…] Information on that Topic: geeksforgeeks.org/check-whether-a-given-string-is-heterogram-or-not/ […]
… [Trackback]
[…] Here you will find 99220 more Information to that Topic: geeksforgeeks.org/check-whether-a-given-string-is-heterogram-or-not/ […]