ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมตรวจสอบว่าสตริงเป็น Pangram หรือไม่
Pangram คืออะไร?
Pangram คือสตริงที่มีตัวอักษรภาษาอังกฤษครบทุกตัว (A-Z หรือ a-z) อย่างน้อย 1 ครั้ง เช่น "The quick brown fox jumps over the lazy dog"
วิธีที่ 1: ใช้ Loop ตรวจสอบทุกตัวอักษร
อัลกอริทึม
1. import string module 2. alphabets = string.ascii_lowercase (มี a-z ครบ) 3. กำหนดสตริงที่ต้องตรวจสอบ 4. ฟังก์ชัน is_pangram(string, alphabets): 4.1 วนลูปทุกตัวอักษรใน alphabets 4.2 ถ้าตัวอักษรไม่อยู่ใน string.lower() → return False 4.3 จบลูป → return True 5. พิมพ์ Panagram หรือ Not Panagram
โค้ดตัวอย่าง
import string
def is_pangram(string, alphabets):
for char in alphabets:
if char not in string.lower():
return False
return True
alphabets = string.ascii_lowercase
string_one = "The Quick Brown Fox Jumps Over The Lazy Dog"
string_two = "TutorialsPoint TutorialsPoint"
print("Panagram" if is_pangram(string_one, alphabets) else "Not Panagram")
print("Panagram" if is_pangram(string_two, alphabets) else "Not Panagram")ผลลัพธ์
Panagram Not Panagram
วิธีที่ 2: ใช้ Set (สั้นและ Pythonic)
อัลกอริทึม
1. import string 2. alphabets = string.ascii_lowercase 3. แปลงทั้งสองเป็น set 4. ถ้า set(string.lower()) >= set(alphabets) → Panagram
โค้ดตัวอย่าง
import string
alphabets = string.ascii_lowercase
string_one = "The Quick Brown Fox Jumps Over The Lazy Dog"
string_two = "TutorialsPoint TutorialsPoint"
print("Panagram" if set(string_one.lower()) >= set(alphabets) else "Not Panagram")
print("Panagram" if set(string_two.lower()) >= set(alphabets) else "Not Panagram")ผลลัพธ์
Panagram Not Panagram
สรุป
วิธี Set ใช้ >= (superset) ตรวจสอบว่าสตริงมีตัวอักษรครบกว่า alphabets หรือไม่ สั้น กระชับ และเร็วกว่า หากมีข้อสงสัย สามารถถามได้ในส่วนความคิดเห็น