Check if given String is Pangram or not
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
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 <bits/stdc++.h> 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 <stdbool.h> #include <stdio.h> #include <string.h> // 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[26]; 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 [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[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
<script> // A JavaScript Program to check if the given // string is a pangram or not // Returns true if the string is pangram else false function checkPangram(str) { // Create a hash table to mark the characters // present in the string mark = new Array(26).fill( false ); // For indexing in mark[] let index; // Traverse all characters for (let i = 0; i < str.length; i++) { // If uppercase character, subtract 'A' // to find index. if ( 'A' <= str[i] && str[i] <= 'Z' ) index = str.charCodeAt(i) - 'A' .charCodeAt(0); // If lowercase character, subtract 'a' // to find index. else if ( 'a' <= str[i] && str[i] <= 'z' ) index = str.charCodeAt(i) - 'a' .charCodeAt(0); // If this character is other than english // lowercase and uppercase characters. else continue ; mark[index] = true ; } // Return false if any character is unmarked for (let i = 0; i <= 25; i++) if (mark[i] == false ) return false ; // If all characters were present return true ; } // Driver Program to test above functions let str = "The quick brown fox jumps over the lazy dog" ; document.write(str, "</br>" ) if (checkPangram(str) == true ) document.write( "\nis a pangram" ); else document.write( "\nis not a pangram" ); // This code is contributed by shinjanpatra. </script> |
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.
Please Login to comment...