समस्या विवरण
एक वाक्य दिया गया है। हमारा कार्य यह जांचना है कि यह वाक्य पैंग्राम है या नहीं। पैंग्राम जांच का तर्क यह है कि शब्द या वाक्य में वर्णमाला का प्रत्येक अक्षर कम से कम एक बार मौजूद होता है। इस समस्या को हल करने के लिए हम set() विधि और लिस्ट कॉम्प्रिहेंशन तकनीक का उपयोग करते हैं।
उदाहरण
इनपुट: string = 'abc def ghi jkl mno pqr stu vwx yz'
आउटपुट: हां // 'a' से 'z' तक सभी वर्ण मौजूद हैं
इनपुट: str='python program'
आउटपुट: नहीं // 'a' से 'z' तक सभी वर्ण मौजूद नहीं हैं
एल्गोरिदम
- एक स्ट्रिंग बनाएं।
- पूरे वाक्य को
lower()विधि का उपयोग करके लोअरकेस में बदलें। - इनपुट स्ट्रिंग को
set()में बदलें, ताकि वाक्य में मौजूद सभी अद्वितीय वर्णों की सूची मिल जाए। ord()का उपयोग करके सभी अक्षरों को अलग करें, जो वर्ण का ASCII मान लौटाता है।- यदि सूची की लंबाई 26 है तो इसका मतलब है कि सभी वर्ण मौजूद हैं और वाक्य पैंग्राम है अन्यथा नहीं।
उदाहरण कोड
def checkPangram(s):
lst = []
for i in range(26):
lst.append(False)
for c in s.lower():
if not c == " ":
lst[ord(c) - ord('a')] = True
for ch in lst:
if ch == False:
return False
return True
# ड्राइवर प्रोग्राम
str1 = input("स्ट्रिंग दर्ज करें ::>")
if (checkPangram(str1)):
print('"' + str1 + '"')
print("एक पैंग्राम है")
else:
print('"' + str1 + '"')
print("पैंग्राम नहीं है")
आउटपुट
स्ट्रिंग दर्ज करें ::abc def ghi jkl mno pqr stu vwx yz
"abc def ghi jkl mno pqr stu vwx yz" एक पैंग्राम है
स्ट्रिंग दर्ज करें ::> python program
"python program" पैंग्राम नहीं है