Chương trình Palindrom trong Python


Chương trình Palindrome trong Python là gì?

Một Palindrome có thể được định nghĩa là một chuỗi hoặc một số hiển thị cùng một giá trị khi vị trí của nó bị đảo ngược. Nói một cách đơn giản hơn, nó vẫn không thay đổi khi đảo ngược.

Example: deed, 101

Khi so sánh từ đảo ngược và từ thực tế (một số hoặc một chuỗi), chúng sẽ tạo ra kết quả giống nhau.

Các loại Palindrome

Trong ngôn ngữ Python, Palindrome có ba loại, như được liệt kê bên dưới:

  • Bảng màu nhiều từ: Đây là sự kết hợp của nhiều từ trong đó giá trị của từ gốc và từ đảo ngược là như nhau.
  • Bảng màu một từ: Đây là một từ duy nhất trong đó giá trị của từ gốc và từ đảo ngược là như nhau.
  • Bảng màu số: Đây là số trong đó giá trị của số gốc và số đảo ngược giống nhau. Đầu vào đã cho vẫn giữ nguyên từ phía trước hoặc từ phía ngược lại.

Thuật toán cho số Palindrome trong Python

Thuật toán sau đây có thể được áp dụng để kiểm tra số palindrom:

Bước 1) Thực hiện khai báo biến dưới dạng 'I' và đọc biến.

Bước 2) Gán ‘I’ cho biến tạm thời j. tôi=j

Bước 3) Thực hiện vòng lặp theo hướng dẫn như bên dưới: –

  • M=Tôi % 10
  • L=L x 10 + M
  • Tôi=tôi/10

Bước 4) So sánh biến tạm thời với l. L==J.

Bước 5) In số thành bảng màu nếu điều kiện được thỏa mãn.

Bước 6) Nếu điều kiện không thỏa mãn, hãy in số dưới dạng không phải bảng màu.

Bước 7) Kết thúc

Thuật toán trên áp dụng cho các số palindrome trong Python.

Phương pháp 1: Số Palindrome trong Python bằng cách sử dụng Backward Slicing

Cắt ngược trong Python thường liên quan đến việc sử dụng các câu lệnh tập hợp con từ chương trình gốc. Các câu lệnh tập hợp con cũng có thể sử dụng vòng lặp. Chương trình palindrome của Python có thể được cắt ngược.

Chương trình python sau đây sử dụng vòng lặp lùi để xác định xem một chuỗi có phải là một bảng màu hay không.

Chương trình chuỗi Palindrome bằng mã 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")

Đầu ra:

deed is: Palindrome

Giải thích mã:

  • Mã Python cố gắng nối chuỗi trống b theo thứ tự ngược lại bằng cách sử dụng độ dài của chuỗi chính và hàm phạm vi Python.
  • Sau đó, chuỗi b được nối với chuỗi rỗng rev bằng cách sử dụng dấu phân cách chuỗi .

Cách 2: Chương trình Palindrome trong Python sử dụng Flag

Các biến cờ có thể được định nghĩa bằng Python để xác định các bảng màu. Cờ được khởi tạo bằng 0. Chương trình sau đây minh họa việc sử dụng tham số cờ:

Mã Python cho chương trình 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)

Đầu ra:

deed is: Palindrome

0

Giải thích mã:

  • Ký tự trong Python bắt đầu bằng chỉ số 0.
  • Vì m được khởi tạo là -1 nên chuỗi được đọc từ phía ngược lại dưới dạng chỉ mục âm.
  • Vòng lặp for với câu lệnh if kiểm tra xem mỗi ký tự bắt đầu bằng chỉ số 0 có trong chuỗi có khớp với chỉ mục ngược của chuỗi hay không.
  • Tuy nhiên, nếu nó không khớp thì chương trình sẽ khởi tạo cờ là 1; nếu không, nó sẽ khởi tạo là 0.

Cách 3: Kiểm tra Palindrome trong Python bằng cách đảo ngược ký tự

Phương thức char được sử dụng để đảo ngược một chuỗi trong chương trình palindrome này trong Python. Chuỗi gốc được kiểm tra bằng chuỗi đảo ngược để xác định xem chuỗi đó có phải là chuỗi palindrome hay không.

Mã chương trình 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))

Đầu ra:

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

Giải thích mã:

  • Hàm str của Python giúp chuyển đổi định dạng giá trị số sang định dạng chuỗi. Đầu tiên chương trình sẽ kiểm tra xem giá trị 123 có phải là một bảng màu hay không.
  • Sau đó nó kiểm tra giá trị 101 và giá trị chuỗi của chứng thư.
  • Mã này kiểm tra giá trị có phải là một bảng màu cho cả định dạng số và chuỗi hay không.

Phương pháp 4: Cách kiểm tra Palindrome trong Python bằng cách sử dụng Character Matching

Trong phương pháp palindrome này, chương trình kiểm tra xem mỗi ký tự trong chuỗi có khớp với chuỗi ngược hay không bằng cách sử dụng vòng lặp for, hàm phạm vi và hàm Len.

Mã 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")

Đầu ra:

Not Palindrome

Giải thích mã:

  • Hàm do người dùng định nghĩa được gắn nhãn là Bộ so sánh Palindrome kiểm tra xem giá trị có phải là chuỗi hay không.
  • Chương trình so sánh chuỗi gốc và chuỗi đảo ngược của chuỗi gốc bằng cách sử dụng tiêu chí original[i]!= original[len(origin) – i – 1].
  • Chương trình trên sử dụng kỹ thuật độ dài để xác định độ dài của chuỗi.

Phương pháp 5: Palindrome trong Python sử dụng đệ quy

Trong Python, đệ quy có nghĩa là hàm gọi chính nó nhiều lần và theo một bộ tiêu chí cụ thể. Bằng cách này, vấn đề có thể được chia thành các vấn đề nhỏ hơn bằng cách sử dụng cùng một cấu trúc hàm. Bằng cách sử dụng logic lập trình đệ quy, các chuỗi palindrome cũng có thể được kiểm tra

Mã 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")

Đầu ra:

12321 is: Palindrome

Giải thích mã:

  • Chương trình sử dụng một hàm do người dùng xác định và gọi đệ quy chính nó.
  • Số ban đầu được chia nhỏ và giá trị còn lại của nó được cộng vào giá trị đối diện.
  • Giá trị ngược lại được nhân với 10 trước khi cộng với giá trị còn lại.

Cách 6: Cách sử dụng Vòng lặp While để kiểm tra Palindrome

Vòng lặp while thực hiện việc thực thi mã trên cơ sở lặp đi lặp lại cho đến khi điều kiện được áp dụng là đúng.

  • Phương pháp lặp có thể được sử dụng để kiểm tra xem giá trị nguyên có phải là palindrome hay không.
  • Chương trình Python sử dụng các số tạm thời và toán tử modulo.

Mã 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")

Đầu ra:

Palindrome

Giải thích mã:

  • Chương trình sử dụng vòng lặp while để kiểm tra xem số tạm thời có nhỏ hơn 0 hay không.
  • Toán tử modulo tính phần còn lại của số ban đầu.
  • Số ban đầu chia cho 10.
  • Tham số ngược lại được tính bằng cách nhân với 10.
  • Số kết quả được thêm vào số dư.
  • Chương trình trên kiểm tra số gốc và số ngược để phân loại nó có phải là palindrome hay không.

Phần kết luận

  • Palindrome là một giá trị khi so sánh từ hướng lùi và hướng tiến sẽ giống nhau. Nó được sử dụng trong các câu đố toán học khác nhau.
  • Một số cách có thể được áp dụng trong Python để so sánh xem một giá trị có phải là bảng màu hay không. Các kỹ thuật được sử dụng là: – Cắt ngược, So khớp ký tự, Đệ quy, Sử dụng các vòng lặp, hàm rev, Len và str, các hàm được xác định trước, đệ quy, v.v.