Python set to check if string is pangram
Last Updated :
25 Mar, 2023
Given a string, check if the given string is a pangram or not.
Examples:
Input : The quick brown fox jumps over the lazy dog
Output : The string is a pangram
Input : geeks for geeks
Output : The string is not pangram
A normal way would have been to use frequency table and check if all elements were present or not. But using import ascii_lowercase as asc_lower we import all the lower characters in set and all characters of string in another set. In the function, two sets are formed- one for all lower case letters and one for the letters in the string. The two sets are subtracted and if it is an empty set, the string is a pangram.
Below is Python implementation of the above approach:
Python
from string import ascii_lowercase as asc_lower
def check(s):
return set (asc_lower) - set (s.lower()) = = set ([])
string = "The quick brown fox jumps over the lazy dog"
if (check(string) = = True ):
print ( "The string is a pangram" )
else :
print ( "The string isn't a pangram" )
|
Output
The string is a pangram
Time Complexity: O(n)
Auxiliary Space: O(1)
Method #2: Using lower(),replace(),list(),set(),sort() and join() methods
Python3
string = "The quick brown fox jumps over the lazy dog"
string = string.replace( " " ,"")
string = string.lower()
x = list ( set (string))
x.sort()
x = "".join(x)
alphabets = "abcdefghijklmnopqrstuvwxyz"
if (x = = alphabets):
print ( "The string is a pangram" )
else :
print ( "The string isn't a pangram" )
|
Output
The string is a pangram
Time Complexity : O(N logN)
Auxiliary Space : O(N)
Method #3 : Using lower(),replace(),len() methods and for loop
Approach
- Convert the given string to lowercase and remove all spaces
- Check whether all the alphabets are present in given string by incrementing count variable and for loop
- If count is equal to 26(number of alphabets) display The string is a pangram
- If not display The string isn’t a pangram
Python3
string = "The quick brown fox jumps over the lazy dog"
string = string.replace( " " ,"")
string = string.lower()
alphabets = "abcdefghijklmnopqrstuvwxyz"
c = 0
for i in alphabets:
if i in string:
c + = 1
if (c = = len (alphabets)):
print ( "The string is a pangram" )
else :
print ( "The string isn't a pangram" )
|
Output
The string is a pangram
Time Complexity : O(N) N – total number of alphabets
Auxiliary Space : O(1)
Please Login to comment...