โปรแกรมปาลินโดรมใน Python
โปรแกรม Palindrome คืออะไร Python?
Palindrome สามารถกำหนดเป็นสตริงหรือตัวเลขที่แสดงค่าเดียวกันเมื่อกลับตำแหน่งได้ พูดง่ายๆ ก็คือ มันจะไม่เปลี่ยนแปลงเมื่อกลับด้าน
Example: deed, 101
เมื่อเปรียบเทียบคำที่กลับกันและคำจริง (ตัวเลขหรือสตริง) คำเหล่านี้จะให้ผลลัพธ์เดียวกัน
ประเภทของพาลินโดรม
In Python language, ปาลินโดรมมี 3 ประเภท ดังรายการด้านล่าง:
- พาลินโดรมหลายคำ: นี่คือการรวมกันของคำหลายคำโดยที่ค่าของคำต้นฉบับและคำที่กลับกันจะเท่ากัน
- พาลินโดรมคำเดียว: เป็นคำเดียวที่ค่าของคำเดิมและคำกลับกันเท่ากัน
- พาลินโดรมจำนวน: นี่คือตัวเลขที่มีค่าตัวเลขเดิมและตัวเลขที่กลับด้านเท่ากัน อินพุตที่กำหนดจะยังคงเหมือนเดิมไม่ว่าจะจากด้านหน้าหรือด้านหลัง
อัลกอริทึมสำหรับตัวเลข Palindrome ใน Python
สามารถใช้อัลกอริทึมต่อไปนี้เพื่อตรวจสอบหมายเลขพาลินโดรมได้:
ขั้นตอน 1) ทำการประกาศตัวแปรเป็น 'I' และอ่านตัวแปร
ขั้นตอน 2) กำหนด 'I' เป็นตัวแปรชั่วคราว j ฉัน=เจ
ขั้นตอน 3) ดำเนินการวนซ้ำตามคำแนะนำที่แสดงด้านล่าง: –
- ม=ฉัน % 10
- ยาว=ยาว x 10 + ม
- ฉัน = ฉัน / 10
ขั้นตอน 4) เปรียบเทียบตัวแปรชั่วคราวกับ l ล==เจ
ขั้นตอน 5) พิมพ์ตัวเลขให้เป็นพาลินโดรมหากตรงตามเงื่อนไข
ขั้นตอน 6) หากไม่เป็นไปตามเงื่อนไข ให้พิมพ์ตัวเลขว่าไม่ใช่พาลินโดรม
ขั้นตอน 7) ปลาย
อัลกอริทึมข้างต้นใช้ได้กับตัวเลขพาลินโดรมใน Python.
วิธีที่ 1: หมายเลข Palindrome เข้า Python ใช้การหั่นแบบย้อนกลับ
หั่นย้อนหลังเข้า. Python โดยทั่วไปเกี่ยวข้องกับการใช้คำสั่งย่อยจากโปรแกรมต้นฉบับ คำสั่งย่อยสามารถใช้ลูปได้เช่นกัน Pythonโปรแกรมพาลินโดรมของสามารถหั่นแบบย้อนกลับได้
โปรแกรม Python ต่อไปนี้ใช้ลูปย้อนหลังเพื่อตรวจสอบว่าสตริงเป็นพาลินโดรมหรือไม่
โปรแกรมสตริง Palindrome ใน Python รหัส:
a='deed' lena=len(a) b=[] for i in range(lena - 1, -1, -1): b.append(a[i]) rev = "".join(b) print(a + " is: ", end="") if a == rev: print("Palindrome") else: print("Not Palindrome")
Output:
deed is: Palindrome
คำอธิบายรหัส:
- เค้ก Python โค้ดพยายามที่จะผนวกสตริงว่าง b ในลำดับย้อนกลับโดยใช้ความยาวของสตริงหลักและ Python ฟังก์ชั่นช่วง
- จากนั้นสตริง b จะถูกรวมเข้ากับสตริงว่าง rev โดยใช้ตัวคั่นสตริง ".
วิธีที่ 2: โปรแกรม Palindrome ใน Python โดยใช้แฟล็ก
ตัวแปรแฟล็กสามารถกำหนดได้ใน Python เพื่อระบุพาลินโดรม แฟล็กจะถูกกำหนดค่าเริ่มต้นเป็น 0 โปรแกรมต่อไปนี้จะแสดงตัวอย่างการใช้พารามิเตอร์แฟล็ก:
Python รหัสสำหรับโปรแกรม Palindrome:
Pld = "deed" m = -1 flag = 0 for char in Pld: if char != Pld[m]: flag = 1 break m = m - 1 print(Pld + " is: ", end="") if flag: print("Not Palindrome") else: print("Palindrome") print(flag)
Output:
deed is: Palindrome 0
คำอธิบายรหัส:
- ถ่านเข้า Python เริ่มต้นด้วยดัชนี 0
- เนื่องจาก m เริ่มต้นเป็น -1 สตริงจึงถูกอ่านจากด้านหลังเป็นดัชนีลบ
- for loop พร้อมด้วยคำสั่ง if ตรวจสอบว่าอักขระแต่ละตัวที่ขึ้นต้นด้วยดัชนี 0 ที่มีอยู่ในสตริงตรงกับดัชนีย้อนกลับของสตริงหรือไม่
- อย่างไรก็ตาม หากไม่ตรงกัน โปรแกรมจะกำหนดค่าเริ่มต้นของแฟล็กเป็น 1 หากไม่ตรงกัน โปรแกรมจะกำหนดค่าเริ่มต้นเป็น 0
วิธีที่ 3: ตรวจสอบ Palindrome ใน Python โดยการย้อนตัวอักษร
วิธี char ใช้ในการย้อนกลับสตริงในโปรแกรมพาลินโดรมนี้ Pythonตรวจสอบสตริงต้นฉบับด้วยสตริงย้อนกลับเพื่อตรวจสอบว่าสตริงนั้นเป็นพาลินโดรมหรือไม่
Python รหัสโปรแกรม Palindrome:
Base = "123" reverse = "" for char in Base: reverse = char + reverse print("Palindrome") if Base == reverse else print("Not Palindrome") print("Original string is: " + str(Base)) print("reverse string is: " + str(reverse)) Base = "101" reverse = "" for char in Base: reverse = char + reverse print("Palindrome") if Base == reverse else print("Not Palindrome") print("Original string is: " + str(Base)) print("reverse string is: " + str(reverse)) Base = "deed" reverse = "" for char in Base: reverse = char + reverse print("Palindrome") if Base == reverse else print("Not Palindrome") print("Original string is: " + str(Base)) print("reverse string is: " + str(reverse))
Output:
Not Palindrome The original string is: 123 The reverse string is: 321 Palindrome The original string is: 101 The reverse string is: 101 Palindrome The original string is: the deed The reverse string is: the deed
คำอธิบายรหัส:
- Pythonฟังก์ชัน str ของ str ช่วยแปลงรูปแบบค่าตัวเลขเป็นรูปแบบสตริง ก่อนอื่นโปรแกรมจะตรวจสอบว่าค่า 123 เป็นพาลินโดรมหรือไม่
- จากนั้นจะตรวจสอบค่า 101 และค่าสตริงของโฉนด
- รหัสจะตรวจสอบว่าค่าเป็นพาลินโดรมสำหรับทั้งรูปแบบตัวเลขและสตริง
วิธีที่ 4: วิธีการตรวจสอบ Palindrome ใน Python โดยใช้การจับคู่อักขระ
ในเมธอด palindrome นี้ โปรแกรมจะตรวจสอบว่าอักขระแต่ละตัวในสตริงตรงกับสตริงย้อนกลับหรือไม่ โดยใช้ฟังก์ชัน for loop, range และฟังก์ชัน Len
Python รหัส:
def PalindromeComparator(original): for i in range(0, len(original)): if original[i] != original[len(original) - i - 1]: return False return True Base = "deed" print("Palindrome") if PalindromeComparator(Base) else print("Not Palindrome")
Output:
Not Palindrome
คำอธิบายรหัส:
- ฟังก์ชันที่ผู้ใช้กำหนดซึ่งมีชื่อว่า Palindrome Comparator จะตรวจสอบว่าค่านั้นเป็นสตริงหรือไม่
- โปรแกรมจะเปรียบเทียบสตริงต้นฉบับและย้อนกลับของสตริงต้นฉบับโดยใช้ เกณฑ์ ต้นฉบับ[i]!= ต้นฉบับ[len(ต้นฉบับ) – i – 1].
- โปรแกรมข้างต้นใช้เทคนิคความยาวเพื่อกำหนดความยาวของสตริง
วิธีที่ 5: Palindrome ใน Python ใช้การเรียกซ้ำ
In Pythonการเรียกซ้ำหมายความว่าฟังก์ชันเรียกตัวเองซ้ำๆ และเป็นไปตามชุดเกณฑ์เฉพาะ ด้วยวิธีนี้ ปัญหาสามารถแบ่งออกเป็นปัญหาเล็กๆ ได้โดยใช้โครงสร้างฟังก์ชันเดียวกัน โดยใช้ตรรกะการเขียนโปรแกรมการเรียกซ้ำ สตริงพาลินโดรมก็สามารถตรวจสอบได้เช่นกัน
Python รหัส:
def palcomprec(number, oppo): if number == 0: return oppo remainder = int(number % 10) oppo = (oppo * 10) + remainder return palcomprec(int(number / 10), oppo) Base = 12321 reverse = 0 reverse = palcomprec(Base, reverse) print(str(Base) + " is: ", end="") print("Palindrome") if reverse == Base else print("Not Palindrome")
Output:
12321 is: Palindrome
คำอธิบายรหัส:
- โปรแกรมใช้ฟังก์ชันที่ผู้ใช้กำหนดซึ่งจะเรียกตัวเองซ้ำๆ
- หมายเลขเดิมจะถูกแจกแจง และมูลค่าคงเหลือจะถูกบวกเข้ากับค่าตรงข้าม
- ค่าตรงข้ามจะถูกคูณด้วย 10 ก่อนจึงจะบวกกับค่าที่เหลือ
วิธีที่ 6: วิธีใช้ While Loop เพื่อตรวจสอบ Palindrome
การวนซ้ำ while จะดำเนินการเรียกใช้โค้ดซ้ำๆ จนกว่าเงื่อนไขที่ใช้จะเป็นจริง
- สามารถใช้วิธีการวนซ้ำเพื่อตรวจสอบว่าค่าจำนวนเต็มเป็นพาลินโดรมหรือไม่
- เค้ก Python โปรแกรมจะใช้ตัวเลขชั่วคราวและตัวดำเนินการโมดูโล
Python รหัส:
original = 101 temporary = original reverse = 0 while temporary > 0: remainder = temporary % 10 reverse = (reverse * 10) + remainder temporary = temporary // 10 if original == reverse: print('Palindrome') else: print("Not Palindrome")
Output:
Palindrome
คำอธิบายรหัส:
- โปรแกรมใช้ while loop เพื่อตรวจสอบว่าตัวเลขชั่วคราวน้อยกว่าศูนย์หรือไม่
- ตัวดำเนินการโมดูโลจะคำนวณส่วนที่เหลือของตัวเลขเดิม
- จำนวนเดิมจะถูกหารด้วย 10
- พารามิเตอร์ย้อนกลับคำนวณโดยการคูณด้วย 10
- จำนวนผลลัพธ์จะถูกเพิ่มเข้าไปในยอดคงเหลือ
- โปรแกรมข้างต้นจะตรวจสอบหมายเลขเดิมและหมายเลขย้อนกลับเพื่อจัดประเภทเป็นพาลินโดรมหรือไม่
สรุป
- Palindrome เป็นค่าเมื่อเปรียบเทียบจากทิศทางถอยหลัง และทิศทางไปข้างหน้าจะเหมือนกัน มันถูกใช้ในปริศนาทางคณิตศาสตร์ต่างๆ
- สามารถนำมาใช้ได้หลายวิธี Python เพื่อเปรียบเทียบว่าค่าเป็นพาลินโดรมหรือไม่ เทคนิคที่ใช้ ได้แก่ การแบ่งส่วนย้อนหลัง การจับคู่อักขระ การเรียกซ้ำ การใช้ลูป ฟังก์ชัน rev, Len และ str ฟังก์ชันที่กำหนดไว้ล่วงหน้า การเรียกซ้ำ ฯลฯ