ในบทความนี้ เราจะเรียนรู้วิธีกำหนดว่าสตริงเป็น "pangram" หรือไม่ใน Python 3.x (หรือเวอร์ชันก่อนหน้า) สตริง pangram ประกอบด้วยตัวอักษรทุกตัวในรายการอักษรภาษาอังกฤษ มาดูภาพประกอบด้านล่าง -
Provided Input: str = 'This is the python blog on Tutorial point' Desired Output: No Provided Input: str = 'I want to contribute to a 'dxyzwuvghlkfmq' open source project' Desired Output: Yes
ตามนิยาม Pangram ที่สมบูรณ์ (perfect pangram) รวมทุกตัวอักษรของ '26 อักษรภาษาอังกฤษ' ทุกตัวเพียงครั้งเดียว บทช่วยสอนนี้ไม่รวมแนวคิด 'perfect pangram'
มาดูโจทย์และเงื่อนไข
โจทย์ - กำหนดสตริง ตรวจสอบว่ามันเป็น Pangram หรือไม่
เงื่อนไข
- ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือว่าเหมือนกัน
- ไม่บังคับเรื่อง perfect Pangram ตามที่อภิปรายข้างต้น
Input: บรรทัดแรกของอินพุตมีสตริงทดสอบ 'str_input' Output: พิมพ์ 'String is a Pangram' หากเงื่อนไขเป็นจริง มิฉะนั้นแสดง 'String is not a Pangram'
โครงสร้างข้อมูลที่เกี่ยวข้อง
Set() และ List() Comprehension
ข้อกำหนดเบื้องต้น
String และ String Operations
มาดูอัลกอริทึมที่เราจะนำไปปฏิบัติในโจทย์นี้อย่างรวดเร็ว -
งานแรกคือแปลงสตริงอินพุตทั้งหมดเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ ที่นี่ฉันใช้การแปลงเป็นตัวพิมพ์ใหญ่ด้วยเมธอด upper() ของชนิดข้อมูล "string" ใน Python 3.x (หรือเวอร์ชันก่อนหน้า)
ตอนนี้ด้วยความช่วยเหลือของฟังก์ชัน set(str_input) เราสามารถสร้าง List ขององค์ประกอบที่แตกต่างกันทั้งหมดที่อยู่ในสตริงอินพุตได้
ตอนนี้เราจะสร้าง List ใหม่ "dist_list" ซึ่งประกอบด้วยอักษรที่แตกต่างกันทั้งหมดโดยไม่มีตัวเลขหรืออักขระพิเศษ
ตอนนี้ตรวจสอบว่าความยาวของ dist_list เท่ากับ 26 หรือไม่ หากเงื่อนไขเป็นจริง อินพุตคือ Pangram มิฉะนั้นไม่ใช่
ตัวอย่างโค้ด
# ฟังก์ชันผู้ใช้สำหรับตรวจสอบ Pangram
def check_pangram(input):
# แปลงสตริงอินพุตเป็นตัวพิมพ์ใหญ่
str_input = str_input.upper()
# แปลงสตริงอินพุตเป็น Set()
# จะได้ List ขององค์ประกอบที่แตกต่างกัน
str_input = set(str_input)
# แยกอักษรออกจากตัวเลขและอักขระพิเศษ
# ord(ch) คืนค่า ASCII ของตัวอักษร
dist_list = [char for char in str_input if ord(char) in range(ord('a'), ord('z')+1)]
if len(dist_list) == 26:
return 'String is a Pangram'
else:
return 'String is not a Pangram'
# ฟังก์ชันหลักที่รันได้
if __name__ == "__main__":
str_input = input()
print(check_pangram(str_input))
สรุป
ในบทความนี้ เราได้เรียนรู้วิธีการหาว่าสตริงเป็น Pangram หรือไม่โดยใช้ Python 3.x (หรือเวอร์ชันก่อนหน้า) คุณสามารถนำอัลกอริทึมเดียวกันไปสร้างโปรแกรมตรวจจับ pangram ในภาษาโปรแกรมอื่นได้