กำหนดประโยค งานคือตรวจสอบว่าประโยคนี้เป็น pangram หรือไม่ ตรรกะคือคำหรือประโยคที่มีตัวอักษรทุกตัวในอัลฟาเบทอย่างน้อยหนึ่งครั้ง แก้ด้วยเมธอด set() และ list comprehension
ตัวอย่าง
Input: string = 'abc def ghi jkl mno pqr stu vwx yz' Output: Yes // มีตัวอักษรครบ a ถึง z Input: str='python program' Output: No // ไม่มีตัวอักษรครบ a ถึง z
อัลกอริทึม
ขั้นตอนที่ 1: สร้างสตริง ขั้นตอนที่ 2: แปลงประโยคทั้งหมดเป็นตัวพิมพ์เล็กด้วย lower() ขั้นตอนที่ 3: แปลงสตริงอินพุทเป็น set() เพื่อได้รายการตัวอักษรที่ไม่ซ้ำกัน ขั้นตอนที่ 4: แยกตัวอักษรอัลฟาเบททั้งหมด ord() คืนค่า ASCII ขั้นตอนที่ 5: ถ้าความยาวลิสต์เป็น 26 แสดงว่ามีตัวอักษรครบ เป็น Pangram ไม่อย่างนั้นไม่ใช่
โค้ดตัวอย่าง
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("เป็น pangram")
else:
print('"' + str1 + '"')
print("ไม่ใช่ pangram")
ผลลัพธ์
ป้อนสตริง ::abc def ghi jkl mno pqr stu vwx yz "abc def ghi jkl mno pqr stu vwx yz" เป็น pangram ป้อนสตริง ::> python program "pyhton program" ไม่ใช่ pangram