 Open in App
Not now

# Check if given String is Pangram or not

• Difficulty Level : Easy
• Last Updated : 15 Sep, 2022

Given a string Str. The task is to check if it is Pangram or not.

A pangram is a sentence containing every letter in the English Alphabet.

Examples:

Input: “The quick brown fox jumps over the lazy dog”
Output: is a Pangram
Explanation: Contains all the characters from ‘a’ to ‘z’]

Input: “The quick brown fox jumps over the dog”
Output: is not a Pangram
Explanation: Doesn’t contain all the characters from ‘a’ to ‘z’, as ‘l’, ‘z’, ‘y’ are missing

Recommended Practice

Approach: Below is the idea to solve the problem

Create a mark[] array of Boolean types and iterate through all the characters of the string and mark it as visited. Lowercase and Uppercase are considered the same. So ‘A’ and ‘a’ are marked in index 0 and similarly ‘Z’ and ‘z’ are marked in index 25.

After iterating through all the characters check whether all the characters are marked or not. If not then return false as this is not a pangram else return true

Follow the below steps to Implement the idea:

• Create a bool vector mark[] of size 26.
• Iterate through all characters of the string str and mark str[i] – ‘a’ or str[i] – ‘A’ as 1 for lower and upper characters respectively.
• Iterate through all the indices of mark[]
• If all indices are marked visited then return is a Pangram
• Else return  is not a Pangram.

Below is the Implementation of above approach

## C++

 `// A C++ Program to check if the given``// string is a pangram or not``#include ``using` `namespace` `std;` `// Returns true if the string is pangram else false``bool` `checkPangram(string& str)``{``    ``// Create a hash table to mark the characters``    ``// present in the string``    ``vector<``bool``> mark(26, ``false``);``    ``// For indexing in mark[]``    ``int` `index;``    ``// Traverse all characters``    ``for` `(``int` `i = 0; i < str.length(); i++) {``        ``// If uppercase character, subtract 'A'``        ``// to find index.``        ``if` `(``'A'` `<= str[i] && str[i] <= ``'Z'``)``            ``index = str[i] - ``'A'``;``        ``// If lowercase character, subtract 'a'``        ``// to find index.``        ``else` `if` `(``'a'` `<= str[i] && str[i] <= ``'z'``)``            ``index = str[i] - ``'a'``;``        ``// If this character is other than english``        ``// lowercase and uppercase characters.``        ``else``            ``continue``;``        ``mark[index] = ``true``;``    ``}` `    ``// Return false if any character is unmarked``    ``for` `(``int` `i = 0; i <= 25; i++)``        ``if` `(mark[i] == ``false``)``            ``return` `(``false``);``    ``// If all characters were present``    ``return` `(``true``);``}` `// Driver Program to test above functions``int` `main()``{``    ``string str = ``"The quick brown fox jumps over the"``                 ``" lazy dog"``;``    ``if` `(checkPangram(str) == ``true``)``        ``printf``(``" %s \nis a pangram"``, str.c_str());``    ``else``        ``printf``(``" %s \nis not a pangram"``, str.c_str());``    ``return` `(0);``}` `// This code is contributed by Aditya kumar (adityakumar129)`

## C

 `// A C Program to check if the given``// string is a pangram or not``#include ``#include ``#include ` `// Returns true if the string is pangram else false``bool` `checkPangram(``char` `str[])``{``    ``// Create a hash table to mark the characters``    ``// present in the string``    ``bool` `mark;``    ``for` `(``int` `i = 0; i < 26; i++)``        ``mark[i] = ``false``;` `    ``// For indexing in mark[]``    ``int` `index;` `    ``// Traverse all characters``    ``size_t` `size = ``strlen``(str);``    ``for` `(``int` `i = 0; i < size; i++) {` `        ``// If uppercase character, subtract 'A'``        ``// to find index.``        ``if` `(``'A'` `<= str[i] && str[i] <= ``'Z'``)``            ``index = str[i] - ``'A'``;` `        ``// If lowercase character, subtract 'a'``        ``// to find index.``        ``else` `if` `(``'a'` `<= str[i] && str[i] <= ``'z'``)``            ``index = str[i] - ``'a'``;` `        ``// If this character is other than english``        ``// lowercase and uppercase characters.``        ``else``            ``continue``;` `        ``mark[index] = ``true``;``    ``}` `    ``// Return false if any character is unmarked``    ``for` `(``int` `i = 0; i <= 25; i++)``        ``if` `(mark[i] == ``false``)``            ``return` `(``false``);` `    ``// If all characters were present``    ``return` `(``true``);``}` `// Driver Program to test above functions``int` `main()``{``    ``char` `str[]``        ``= ``"The quick brown fox jumps over the lazy dog"``;``    ``if` `(checkPangram(str) == ``true``)``        ``printf``(``" %s \nis a pangram"``, str);``    ``else``        ``printf``(``" %s \nis not a pangram"``, str);``    ``return` `(0);``}` `// This code is contributed by Aditya kumar (adityakumar129)`

## Java

 `// Java Program to illustrate Pangram` `import` `java.io.*;` `class` `GFG {` `    ``// Returns true if the string``    ``// is pangram else false``    ``public` `static` `boolean` `checkPangram(String str)``    ``{``        ``// Create a hash table to mark the``        ``// characters present in the string``        ``// By default all the elements of``        ``// mark would be false.``        ``boolean``[] mark = ``new` `boolean``[``26``];` `        ``// For indexing in mark[]``        ``int` `index = ``0``;` `        ``// Traverse all characters``        ``for` `(``int` `i = ``0``; i < str.length(); i++) {``            ``// If uppercase character, subtract 'A'``            ``// to find index.``            ``if` `(``'A'` `<= str.charAt(i)``                ``&& str.charAt(i) <= ``'Z'``)``                ``index = str.charAt(i) - ``'A'``;` `            ``// If lowercase character, subtract 'a'``            ``// to find index.``            ``else` `if` `(``'a'` `<= str.charAt(i)``                     ``&& str.charAt(i) <= ``'z'``)` `                ``index = str.charAt(i) - ``'a'``;` `            ``// If this character is other than english``            ``// lowercase and uppercase characters.``            ``else``                ``continue``;``            ``mark[index] = ``true``;``        ``}` `        ``// Return false if any character is unmarked``        ``for` `(``int` `i = ``0``; i <= ``25``; i++)``            ``if` `(mark[i] == ``false``)``                ``return` `(``false``);` `        ``// If all characters were present``        ``return` `(``true``);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``String str``            ``= ``"The quick brown fox jumps over the lazy dog"``;` `        ``if` `(checkPangram(str) == ``true``)``            ``System.out.print(str + ``" \nis a pangram."``);``        ``else``            ``System.out.print(str + ``" \nis not a pangram."``);``    ``}``}`

## Python3

 `# A Python Program to check if the given``# string is a pangram or not`  `def` `checkPangram(s):``    ``List` `=` `[]``    ``# create list of 26 characters and set false each entry``    ``for` `i ``in` `range``(``26``):``        ``List``.append(``False``)` `    ``# converting the sentence to lowercase and iterating``    ``# over the sentence``    ``for` `c ``in` `s.lower():``        ``if` `not` `c ``=``=` `" "``:` `            ``# make the corresponding entry True``            ``List``[``ord``(c) ``-` `ord``(``'a'``)] ``=` `True` `    ``# check if any character is missing then return False``    ``for` `ch ``in` `List``:``        ``if` `ch ``=``=` `False``:``            ``return` `False``    ``return` `True`  `# Driver Program to test above functions``sentence ``=` `"The quick brown fox jumps over the little lazy dog"` `if` `(checkPangram(sentence)):``    ``print``(``'"'+sentence+'"'``)``    ``print``(``"\nis a pangram"``)``else``:``    ``print``(``'"'+sentence+'"'``)``    ``print``(``"\nis not a pangram"``)` `# This code is contributed by Danish Mushtaq`

## C#

 `// C# Program to illustrate Pangram``using` `System;``class` `GFG {` `    ``// Returns true if the string``    ``// is pangram else false``    ``public` `static` `bool` `checkPangram(``string` `str)``    ``{` `        ``// Create a hash table to mark the``        ``// characters present in the string``        ``// By default all the elements of``        ``// mark would be false.``        ``bool``[] mark = ``new` `bool``;` `        ``// For indexing in mark[]``        ``int` `index = 0;` `        ``// Traverse all characters``        ``for` `(``int` `i = 0; i < str.Length; i++) {``            ``// If uppercase character, subtract 'A'``            ``// to find index.``            ``if` `(``'A'` `<= str[i] && str[i] <= ``'Z'``)``                ``index = str[i] - ``'A'``;` `            ``// If lowercase character,``            ``// subtract 'a' to find``            ``// index.``            ``else` `if` `(``'a'` `<= str[i] && str[i] <= ``'z'``)``                ``index = str[i] - ``'a'``;` `            ``// If this character is other than english``            ``// lowercase and uppercase characters.``            ``else``                ``continue``;` `            ``mark[index] = ``true``;``        ``}` `        ``// Return false if any``        ``// character is unmarked``        ``for` `(``int` `i = 0; i <= 25; i++)``            ``if` `(mark[i] == ``false``)``                ``return` `(``false``);` `        ``// If all characters``        ``// were present``        ``return` `(``true``);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``string` `str``            ``= ``"The quick brown fox jumps over the lazy dog"``;` `        ``if` `(checkPangram(str) == ``true``)``            ``Console.WriteLine(str + ``" \nis a pangram."``);``        ``else``            ``Console.WriteLine(str + ``" \nis not a pangram."``);``    ``}``}` `// This code is contributed by nitin mittal.`

## Javascript

 ``

Output

``` The quick brown fox jumps over the lazy dog
is a pangram```

Time Complexity: O(n), where n is the length of our string
Auxiliary Space: O(1), as 26 size Boolean vector is constant.

This article is contributed by Rachit Belwariar. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

My Personal Notes arrow_drop_up