Related Articles

Related Articles

Missing characters to make a string Pangram
  • Difficulty Level : Basic
  • Last Updated : 17 Nov, 2020

Pangram is a sentence containing every letter in the English alphabet. Given a string, find all characters that are missing from the string, i.e., the characters that can make the string a Pangram. We need to print output in alphabetic order.

Examples: 

Input : welcome to geeksforgeeks
Output : abdhijnpquvxyz

Input : The quick brown fox jumps
Output : adglvyz

We have discussed Pangram Checking. The idea is similar, we traverse a given string and mark all visited characters. In the end, we print all those characters which are not visited.

Lowercase and Uppercase characters are considered the same. 

C++14

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find characters that needs
// to be added to make Pangram
#include<bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
 
// Returns characters that needs to be added
// to make str
string missingChars(string str)
{
    // A boolean array to store characters
    // present in string.
    bool present[MAX_CHAR] = {false};
 
    // Traverse string and mark characters
    // present in string.
    for (int i=0; i<str.length(); i++)
    {
        if (str[i] >= 'a' && str[i] <= 'z')
            present[str[i]-'a'] = true;
        else if (str[i] >= 'A' && str[i] <= 'Z')
            present[str[i]-'A'] = true;
    }
 
    // Store missing characters in alphabetic
    // order.
    string res = "";
    for (int i=0; i<MAX_CHAR; i++)
        if (present[i] == false)
            res.push_back((char)(i+'a'));
 
    return res;
}
 
// Driver program
int main()
{
    string str = "The quick brown fox jumps "
                 "over the dog";
    cout << missingChars(str);
    return 0;
}       

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find characters that
// needs to be added to make Pangram
import java.io.*;
import java.util.ArrayList;
 
class GFG{
     
private static ArrayList<Character>missingChars(
    String str, int strLength)
{
    final int MAX_CHARS = 26;
     
    // A boolean array to store characters
    // present in string.
    boolean[] present = new boolean[MAX_CHARS];
    ArrayList<Character> charsList = new ArrayList<>();
     
    // Traverse string and mark characters
    // present in string.
    for(int i = 0; i < strLength; i++)
    {
        if ('A' <= str.charAt(i) &&
                   str.charAt(i) <= 'Z')
            present[str.charAt(i) - 'A'] = true;
        else if ('a' <= str.charAt(i) &&
                        str.charAt(i) <= 'z')
            present[str.charAt(i) - 'a'] = true;
    }
     
    // Store missing characters in alphabetic
    // order.
    for(int i = 0; i < MAX_CHARS; i++)
    {
        if (present[i] == false)
            charsList.add((char)(i + 'a'));
    }
    return charsList;
}
 
// Driver Code
public static void main(String[] args)
{
    String str = "The quick brown fox jumps " +
                 "over the dog";
                  
    ArrayList<Character> missing = GFG.missingChars(
        str, str.length());
         
    if (missing.size() >= 1)
    {
        for(Character character : missing)
        {
            System.out.print(character);
        }
    }
}
}
 
// This code is contributed by theSardul

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program to find characters
# that needs to be added to make Pangram
MAX_CHAR = 26
 
# Returns characters that needs
# to be added to make str
def missingChars(Str):
     
    # A boolean array to store characters
    # present in string.
    present = [False for i in range(MAX_CHAR)]
 
    # Traverse string and mark characters
    # present in string.
    for i in range(len(Str)):
        if (Str[i] >= 'a' and Str[i] <= 'z'):
            present[ord(Str[i]) - ord('a')] = True
        elif (Str[i] >= 'A' and Str[i] <= 'Z'):
            present[ord(Str[i]) - ord('A')] = True
 
    # Store missing characters in alphabetic
    # order.
    res = ""
 
    for i in range(MAX_CHAR):
        if (present[i] == False):
            res += chr(i + ord('a'))
             
    return res
 
# Driver code
Str = "The quick brown fox jumps over the dog"
 
print(missingChars(Str))
 
# This code is contributed by avanitrachhadiya2155

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find characters that
// needs to be added to make Pangram
using System.Collections.Generic;
using System;
class GFG{
     
static List<char>missingChars (String str,
                               int strLength)
{
  int MAX_CHARS = 26;
 
  // A boolean array to store
  // characters present in string.
  bool[] present = new bool[MAX_CHARS];
  List<char>charsList = new List<char>();
 
  // Traverse string and mark
  // characters present in string.
  for(int i = 0; i < strLength; i++)
  {
    if ('A' <= str[i] &&
        str[i] <= 'Z')
      present[str[i] - 'A'] = true;
    else if ('a' <= str[i] &&
             str[i] <= 'z')
      present[str[i] - 'a'] = true;
  }
 
  // Store missing characters
  // in alphabetic order.
  for(int i = 0; i < 26; i++)
  {
    if (present[i] == false)
    {
      charsList.Add((char)(i + 'a'));
    }
  }
  return charsList;
}
 
// Driver Code
public static void Main()
{
  String str = "The quick brown fox jumps over the dog";
  List<char> missing = missingChars(str,
                                    str.Length);
  if (missing.Count >= 1)
  {
    foreach (var i in missing)
    {
      Console.Write(i);
    }
  }
}
}
 
// This code is contributed by Stream_Cipher

chevron_right


Output: 



alyz




Time Complexity: O(n) 
Auxiliary Space: O(1)
 

https://youtu.be/VqGOxv8Fb1E
 

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 :