Kiểm tra bảng màu Python

Palindrome là một loại từ, cụm từ, số hoặc bất kỳ chuỗi ký tự đặc biệt nào đọc ngược cũng như đọc xuôi. Chúng tôi quan sát palindromes ở khắp mọi nơi trong cuộc sống hàng ngày của chúng tôi. Chúng ta có thể sử dụng palindromes để giải các câu đố toán học khác nhau và các vấn đề liên quan đến khoa học máy tính. Có nhiều cách khác nhau để chúng ta có thể kiểm tra bảng màu trong python. Hãy cùng khám phá chúng trong bài viết này

Phạm vi bài viết

  • Bài viết này cung cấp một đánh giá chuyên sâu về các phương pháp khác nhau mà chúng ta có thể sử dụng để kiểm tra Palindrome của một số trong Python
  • Bài viết mô tả các phương thức khác nhau và cách triển khai chúng bằng ngôn ngữ lập trình Python

Giới thiệu

Bạn đã xem phim TENET hay bạn đã nghe nói về Quảng trường Sator chưa? . Những từ đặc biệt này đọc ngược cũng như đọc xuôi được gọi là palindromes

VUÔNG SATOR

Kiểm tra bảng màu Python
Như bạn có thể nhận thấy, palindromes rất phổ biến và xảy ra trong cuộc sống hàng ngày của chúng ta. Palindromes được sử dụng để giải các câu đố toán học khác nhau và các vấn đề liên quan đến khoa học máy tính

Bài viết này tập trung vào khái niệm palindrome và các phương pháp khác nhau mà chúng ta có thể sử dụng để kiểm tra palindrome trong python

một bảng màu là gì?

Palindrome là một loại từ, cụm từ, số hoặc bất kỳ chuỗi ký tự đặc biệt nào không thay đổi khi đảo ngược i. e. , nó đọc ngược như xuôi. Chúng ta có thể nhận thấy palindromes xung quanh chúng ta trong cuộc sống hàng ngày của chúng ta. Chẳng hạn như từ "dad", câu "step on no pet", số "101" hoặc ngày "11/11/11", v.v.

Bây giờ, tôi yêu cầu bạn xác minh xem một số đã cho có phải là một số đối xứng không. Trong trường hợp đó, suy nghĩ đầu tiên xuất hiện trong đầu bạn là tìm ra số đảo ngược của số đã cho rồi so sánh nó với số ban đầu để kiểm tra xem số bị đảo ngược có giống số ban đầu không. Đúng?

Chơi lô tô. Bạn đã tìm ra thuật toán kiểm tra tính đối xứng của một số bất kỳ

Thuật toán kiểm tra số palindrome

Bây giờ, chúng ta hãy xem thuật toán để kiểm tra số palindrome

  • Bước 1. Lấy đầu vào từ người dùng
  • Bước 2. Tìm ra mặt trái của đầu vào đã cho
  • Bước 3. Kiểm tra xem số đảo ngược được tạo trong Bước_2 có giống với số đã nhập không. Nếu có, hãy in "Palindrome" và chuyển sang Bước_5, nếu không thì chuyển sang Bước_4
  • Bước 4. In "Không phải là Palindrom"
  • Bước_5. KẾT THÚC

Trong thuật toán trên, bước quan trọng nhất là Bước_2, tôi. e. , để tìm số đảo ngược của số đầu vào đã cho. Bước này xác định mức độ phức tạp của toàn bộ chương trình vì đây là bước tốn nhiều thời gian nhất

Triển khai Python

Bây giờ, hãy tập trung vào việc triển khai thuật toán được đề cập ở trên. Nhiều cách khác nhau được sử dụng để giúp chúng tôi kiểm tra bảng màu trong python. Một số cách này sử dụng các chức năng tích hợp sẵn của Python, trong khi các giải pháp khác sử dụng các kỹ năng giải quyết vấn đề và xây dựng logic của lập trình viên

Chúng ta có thể kiểm tra bảng màu trong Python bằng cách sử dụng

  • Vòng lặp While
  • đệ quy
  • Chức năng tích hợp sẵn
  • cắt lát

Bây giờ, hãy khám phá và tìm ra kỹ thuật tốt nhất để kiểm tra palindrome từ các phương pháp đã đề cập ở trên

1. Sử dụng vòng lặp While

Đây là một phương pháp lặp trong đó chúng ta tìm ra số đảo ngược của một số đã cho bằng cách trích xuất các chữ số từ số đó và lưu trữ chúng theo thứ tự ngược lại để kiểm tra bảng màu. Trong phương pháp này, chúng tôi làm theo các bước sau

  • Đầu tiên, chúng ta lấy số đầu vào n
  • Sau đó, chúng tôi tạo một bản sao của đầu vào bằng cách gán nó cho biến tạm thời (temp = n). Vì các số nguyên là bất biến trong Python nên một bản sao của biến n được lưu trữ trong biến tạm thời
  • Khởi tạo một biến mới gọi là đảo ngược. Nó sẽ được sử dụng để lưu trữ đảo ngược của số đầu vào
  • Bây giờ, chúng tôi tìm ra đảo ngược của số đầu vào bằng cách sử dụng công thức toán học được đề cập bên dưới trong vòng lặp while

digit = n % 10
reverse = reverse*10 + digit
n = n // 10

Nơi đây,

  • Biến số lưu trữ phần còn lại đạt được bằng cách chia biến n cho 10
  • Phần còn lại (chữ số) này sau đó được thêm vào biến đảo ngược sau khi nhân giá trị quá khứ của biến đảo ngược với 10
  • Cuối cùng, số đầu vào n được chia cho 10. Câu lệnh này đóng vai trò là câu lệnh giảm dần cho vòng lặp while
  • Cuối cùng, chúng tôi kiểm tra xem số bị đảo ngược có bằng số đầu vào ban đầu hay không, i. e. , kiểm tra xem temp == reverse có đúng hay không

Bây giờ, hãy xem một ví dụ để hiểu phương thức vòng lặp while

# Taking the number 123 as n to check palindrome
n = 123

# Making a copy of the input number
temp = n

# Declaring a variable to store the reverse of the input number.
reverse = 0

# Reversing the number using a while loop
while(n>0):
    digit = n % 10
    reverse = reverse*10 + digit
    n = n // 10

# Checking whether the reversed number is equal to the original number.
if(temp == reverse):
    print("Palindrome")
else:
    print("Not a Palindrome")

đầu ra

Để nắm bắt hoàn toàn hoạt động của ví dụ trên, hãy để ý giá trị của mỗi biến sau mỗi lần lặp của vòng lặp while

Giá trị ban đầu

  • n = 123
  • đảo ngược = 0
  • tạm thời = 123

Lần lặp đầu tiên

  • chữ số = (n % 10) = 3
  • đảo ngược = (đảo ngược * 10 + chữ số) = 3
  • n = (n / 10) = 12

Lần lặp thứ hai

  • chữ số = (n % 10) = 2
  • đảo ngược = (đảo ngược * 10 + chữ số) = 32
  • n = (n / 10) = 1

Lần lặp thứ ba

  • chữ số = (n % 10) = 1
  • đảo ngược = (đảo ngược * 10 + chữ số) = 321
  • n = (n / 10) = 0

Vòng lặp while sẽ kết thúc sau lần lặp thứ ba, với điều kiện, i. e. , n>0 kết quả là Sai. Do đó, bằng cách sử dụng phép toán mô đun (%) và vòng lặp while, chúng ta có thể kiểm tra bảng màu trong Python

Lưu ý - Trong phương pháp này, chúng tôi đang sao chép số đầu vào vào một biến tạm thời để làm cho nó có sẵn để so sánh sau này trong chương trình. Do đó, phương pháp này yêu cầu thêm không gian

Điểm nổi bật

(1) Cách tiếp cận ngây thơ

(2) Sử dụng công thức toán học và phép lặp để đảo số

(3) Cần thêm dung lượng để sao chép số đầu vào để so sánh với số đảo ngược

2. Sử dụng đệ quy

Một cách khác để kiểm tra bảng màu trong python là chuyển đổi số đầu vào thành một chuỗi (Chuỗi hoặc Danh sách) và sau đó sử dụng kỹ thuật độ dài, tôi. e. , áp dụng đảo ngược thủ công trên độ dài của chuỗi

Trong phương pháp này, chúng tôi kiểm tra xem phần tử đầu tiên của chuỗi có giống với phần tử cuối cùng hay không, phần tử thứ hai có giống với phần tử cuối cùng thứ hai không, v.v. Nếu bất kỳ phần tử nào không khớp, số đó không phải là một bảng màu. Phương pháp này có thể được thực hiện bằng cách sử dụng đệ quy

Hãy xem cách triển khai đệ quy của Kỹ thuật Độ dài

# Recursive Function
def check_palindrome(s):
    # Base Case
    if len(s) <= 1 :
        return True
    
    # Recursive Case
    if s[0] == s[len(s) - 1] :
        return check_palindrome(s[1:len(s) - 1])
    else:
        return False

if(check_palindrome(str(121))): # Converting the number to string
    print("Palindrome")
else:
    print("Not a Palindrome")

đầu ra

Tại đây, khi hàm check_palindrome được gọi, các bước sau sẽ diễn ra

  • Đầu tiên, chúng tôi chuyển đổi số đầu vào n thành một chuỗi bằng hàm str() tích hợp
  • Sau đó, chúng tôi tìm ra độ dài của chuỗi bằng hàm len() tích hợp để xác minh xem chuỗi có trống hay chỉ dài một ký tự
  • Cuối cùng, trường hợp đệ quy được thực hiện trong đó
    • Ta kiểm tra xem ký tự đầu tiên của chuỗi (s[0]) có giống với ký tự cuối cùng (s[len(s)-1]) hay không. Nếu không khớp, chương trình tạm dừng và hàm trả về giá trị Sai. Tuy nhiên, nếu khớp, thì hai ký tự này sẽ bị xóa khỏi chuỗi bằng cách cắt (s[1. len(s) - 1]) và chuỗi mới được gửi dưới dạng đối số cho hàm đệ quy
    • Đối với một số palindrome, quá trình này được tiếp tục cho đến khi chúng ta còn lại chuỗi đơn vị (số đầu vào có các chữ số lẻ) hoặc độ dài bằng 0 (số đầu vào có các chữ số lẻ), i. e. , trường hợp cơ sở đạt được
    • Do đó, trong mọi lệnh gọi hàm, chúng tôi đang giảm kích thước chuỗi xuống 2

Điểm nổi bật

(1) Số được chuyển đổi thành một chuỗi và được chuyển đến hàm đệ quy

(2) Thực hiện kỹ thuật kéo dài thủ công

(3) Tại mỗi lần lặp, hàm giảm dãy đi 2

3. Sử dụng chức năng tích hợp

Chúng ta cũng có thể kiểm tra bảng màu trong Python với sự trợ giúp của hàm Reverse() tích hợp được cung cấp cho các kiểu dữ liệu chuỗi trong Python

  • đảo ngược (dãy). Nó trả về một trình vòng lặp truy cập chuỗi được truyền dưới dạng đối số theo thứ tự ngược lại

Để kiểm tra palindrome trong python bằng cách sử dụng hàm Reverse(sequence) tích hợp sẵn, chúng ta có thể chuyển đổi số đầu vào thành một chuỗi và tìm đảo ngược của chuỗi bằng phương pháp đảo ngược. Sau đó, chúng ta có thể so sánh hai trình tự này để kiểm tra tính đối xứng

Hãy xem một ví dụ để hiểu khái niệm về hàm Reverse()

# Taking the number 12345 as n to check palindrome
n = 12345

# Converting the input number n to a sequence (string).
seq = str(n)

# Checking whether the reversed sequence and the original sequence are equal or not.
if (seq == "".join(reversed(seq))):
    print("Palindrome")
else:
    print("Not a Palindrome")

đầu ra

Ở đây, chúng tôi đang chuyển đổi số đầu vào n thành một chuỗi bằng cách sử dụng hàm str() và lưu trữ nó vào một biến seq. Sau đó, chúng ta kiểm tra xem kết quả của hàm Reverse(seq) có bằng kết quả của chuỗi seq không. Nếu khớp, số đầu vào n là một bảng màu

Điểm nổi bật

(1) Số được chuyển thành dãy

(2) Đảo ngược số bằng chức năng đảo ngược (dãy) tích hợp

4. Sử dụng toán tử Slice

Một cách khác mà chúng ta có thể sử dụng các chuỗi để kiểm tra bảng màu trong python là sử dụng toán tử lát cắt

  • Toán tử lát [n. tôi. step-size] - Nó trả về một phần của chuỗi bắt đầu từ phần tử thứ n đến phần tử thứ (m-1) bằng cách lặp lại chuỗi theo kích thước bước đã xác định

Sau khi chuyển đổi số đầu vào thành một chuỗi, chúng ta có thể tạo một chuỗi đảo ngược bằng cách sử dụng một số nguyên âm làm đối số kích thước bước. Trình tự đảo ngược này được so sánh với trình tự được tạo từ số đầu vào để kiểm tra bảng màu. Đây là cách đơn giản nhất để kiểm tra bảng màu của một số trong Python

Hãy xem một ví dụ để hiểu việc sử dụng phép cắt để kiểm tra bảng màu

# Taking the number 101 as n to check palindrome
n = 101

# Converting the input number to string
s = str(n)

# Using the Slice operator to find the reversed sequence
reverse = s[::-1]

# Checking whether the reversed sequence and the original sequence are equal or not.
if(s == reverse):
    print("Palindrome")
else:
    print("Not a Palindrome")

đầu ra

Đây, s[. -1] chỉ ra rằng kích thước bước là -1 và vì không có đối số nào khác được đưa ra nên nó lặp lại toàn bộ danh sách theo thứ tự ngược lại

Lưu ý - Đối với một số lượng lớn, chức năng đảo ngược(sequence) tích hợp hoạt động tốt hơn toán tử lát. Điều này là do phương thức Reverse(sequence) trả về một trình vòng lặp truy cập chuỗi theo thứ tự ngược lại. Đồng thời, toán tử lát cắt tạo một danh sách mới chứa các phần tử theo thứ tự ngược lại với danh sách ban đầu