โปรแกรมปาลินโดรมใน Python

โปรแกรม Palindrome คืออะไร Python?

Palindrome สามารถกำหนดเป็นสตริงหรือตัวเลขที่แสดงค่าเดียวกันเมื่อกลับตำแหน่งได้ พูดง่ายๆ ก็คือ มันจะไม่เปลี่ยนแปลงเมื่อกลับด้าน

Example: deed, 101

เมื่อเปรียบเทียบคำที่กลับกันและคำจริง (ตัวเลขหรือสตริง) คำเหล่านี้จะให้ผลลัพธ์เดียวกัน

พาลินโดรมใน Python

ประเภทของพาลินโดรม

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 ฟังก์ชันที่กำหนดไว้ล่วงหน้า การเรียกซ้ำ ฯลฯ