Palindrome là một từ, cụm từ, số hoặc một chuỗi đơn vị khác có thể được đọc theo cùng một hướng theo cả hai hướng, với các khoản cho phép chung để điều chỉnh dấu chấm câu và bộ chia từ. Khi đổi chỗ các chữ số của nó thì được một số bằng số ban đầu. Palindromes cũng có thể là số. Ví dụ, thưa bà, 1234321. Blog này sẽ hướng dẫn chúng ta cách tạo một Palindrome trong Python
Nếu bạn muốn tìm hiểu sâu hơn, hãy xem khóa học miễn phí này trên Palindrome trong các Chương trình Python và PG về Kỹ thuật phần mềm. Nó bao gồm các nguyên tắc cơ bản của lập trình python, chẳng hạn như cú pháp, biến, kiểu dữ liệu, toán tử, mã thông báo và chuỗi. Khóa học này cũng cung cấp cho bạn chứng chỉ hoàn thành để giúp bạn dẫn đầu đối thủ
a.
b.
Palindrom là gì?
Palindrome là một từ, cụm từ, số hoặc một chuỗi đơn vị khác có thể được đọc theo cùng một hướng theo cả hai hướng, thường nếu được phân tách bằng dấu phẩy
Chúc mừng ngày đa văn hóa muộn màng. 02/02/2020 là một ngày đặc biệt trong tháng 2. Nó hoạt động cho dù định dạng ngày ưa thích của bạn là MM/DD/YYYY hay DD/MM/YYYY hay YYYY/MM/DD
Những mẫu này được gọi là palindromes. Đọc chúng từ ký tự đầu tiên hoặc ngược lại không tạo ra bất kỳ sự khác biệt nào. Đây là một vấn đề giới thiệu thú vị để giải quyết bằng cách sử dụng lập trình. Trong blog này, chúng ta sẽ hiểu quy trình suy nghĩ, từng bước một và đưa ra các giải pháp khác nhau để kiểm tra xem chuỗi có phải là một đối xứng hay không
Palindrome là một từ, cụm từ, số hoặc một chuỗi ký tự khác đọc ngược cũng như đọc xuôi
Chúng được phân thành 3 loại, đó là số Palindrome,
Chuỗi Palindrome, cụm từ Palindrome. Tập hợp các từ và ký tự đặc biệt
Số Palindrom là gì?
Số Palindrome là tập hợp các số không thay đổi khi đọc ngược. Những con số này cũng được cho là đối xứng. Khi đổi chỗ các chữ số của nó thì được một số bằng số ban đầu. e. g. , 1234321 là một Palindrom. Nếu đảo ngược các chữ số của nó, nó lại trở thành 1234321, số ban đầu của chúng ta. 1234232 không phải là Palindrom. Khi đảo ngược, số mới trở thành 2324321, khác với ban đầu
Chuỗi Palindrome là gì?
Chuỗi Palindrome là một tập hợp các bảng chữ cái vẫn giữ nguyên khi đọc ngược. Chúng còn được gọi là Bảng chữ cái đối xứng. Khi các bảng chữ cái của nó được viết theo thứ tự ngược lại, chúng hóa ra là sự kết hợp các bảng chữ cái giống như chuỗi ban đầu. e. g. , “bà” là một Palindrome. Nếu bảng chữ cái của nó bị đảo ngược, nó lại trở thành “bà”, đó là chuỗi ban đầu của chúng tôi. "khăn ăn" không phải là một Palindrome. Khi đảo ngược, số mới trở thành “nikpan” khác với chuỗi ban đầu
Cụm từ Palindrome là gì?
Cụm từ Palindrome là tập hợp các từ và ký tự đặc biệt không thay đổi khi đọc ngược. Những cụm từ này cũng được cho là đối xứng. Khi cụm từ được đảo ngược, nó trở thành cụm từ chính xác giống như cụm từ ban đầu. ví dụ. a1b2c33c2b1a là một Palindrom. Nếu đảo ngược cụm từ, nó lại trở thành a1b2c33c2b1a, cụm từ gốc của chúng ta. a4b523kg không phải là Palindrom. Khi đảo ngược, số mới trở thành gk325b4a, khác với cụm từ ban đầu
Cụm từ Palindrome là tập hợp các từ và ký tự đặc biệt không thay đổi khi đọc ngược. Những cụm từ này cũng được cho là đối xứng. Khi cụm từ được đảo ngược, nó trở thành cụm từ chính xác giống như cụm từ ban đầu. ví dụ. a1b2c33c2b1a là một Palindrom. Nếu đảo ngược cụm từ, nó lại trở thành a1b2c33c2b1a, cụm từ gốc của chúng ta. a4b523kg không phải là Palindrom. Khi đảo ngược, số mới trở thành gk325b4a, khác với cụm từ ban đầu
Cụm từ Palindrome là tập hợp các từ và ký tự đặc biệt không thay đổi khi đọc ngược. Những cụm từ này cũng được cho là đối xứng. Khi cụm từ được đảo ngược, nó trở thành cụm từ chính xác giống như cụm từ ban đầu. ví dụ. a1b2c33c2b1a là một Palindrom. Nếu đảo ngược cụm từ, nó lại trở thành a1b2c33c2b1a, cụm từ gốc của chúng ta. a4b523kg không phải là Palindrom. Khi đảo ngược, số mới trở thành gk325b4a, khác với cụm từ ban đầu
Cụm từ Palindrome là tập hợp các từ và ký tự đặc biệt không thay đổi khi đọc ngược. Những cụm từ này cũng được cho là đối xứng. Khi cụm từ được đảo ngược, nó trở thành cụm từ chính xác giống như cụm từ ban đầu. ví dụ. a1b2c33c2b1a là một Palindrom. Nếu đảo ngược cụm từ, nó lại trở thành a1b2c33c2b1a, cụm từ gốc của chúng ta. a4b523kg không phải là Palindrom. Khi đảo ngược, số mới trở thành gk325b4a, khác với cụm từ ban đầu
Các ví dụ về bảng chữ cái
Dưới đây là một vài ví dụ về Palindromes
- Mẹ
- thưa bà
- a2332a
- Cao su
- Bố
- 123454321
chuyện vặt vãnh. 02/02/2020 có phải là một chuỗi palindrome khi được coi là một cụm từ palindrome không?
Palindrom trong thuật toán Python
Bạn có thể đăng ký các khóa học liên quan đến Python này để làm quen với Ngôn ngữ lập trình Python và nhận chứng chỉ miễn phí trên Great Learning Academy trước khi thực hành mã và thuật toán Palindromes trong Python
Khoa học dữ liệu với PythonPython cho Machine LearningTrực quan hóa dữ liệu bằng PythonTrí tuệ nhân tạo với PythonBây giờ làm thế nào để tạo Palindromes trong Python?
Xem xét thuật toán cho Tuyên bố vấn đề. Tìm xem một chuỗi có phải là Palindrome hay không
- Kiểm tra xem các chữ cái đầu tiên và cuối cùng của chỉ mục có giống nhau không;
- Lặp lại bước 2 bằng cách tăng chỉ số đầu tiên và giảm chỉ số cuối cùng
- Lặp lại bước 3 while first < last If( first > last) then return True
Bây giờ chúng ta hãy xem xét một thuật toán cho Báo cáo vấn đề. Tìm xem một số có phải là Palindrome hay không
- Sao chép số đầu vào trong một biến khác để so sánh chúng sau này
- Tiếp theo, chúng tôi đảo ngược số đã cho. Để đảo ngược số, hãy làm theo các bước sau
- Cô lập chữ số cuối cùng của một số. Toán tử modulo (%) trả về phần còn lại của phép chia
- Nối chữ số cuối để đảo ngược. đảo ngược = (đảo ngược * 10) + chữ số cuối
- Xóa chữ số cuối cùng khỏi số. số = số / 10
- Lặp lại quá trình này. trong khi (số > 0)
- Bây giờ chúng ta so sánh số đảo ngược với số ban đầu
- Nếu các số giống nhau thì số đó là đối xứng, ngược lại thì không
Bây giờ chúng ta đã có thuật toán, hãy chuyển đổi nó thành mã bằng cách tuân theo logic tương tự
Bảng chữ cái trong Mã Python
Sử dụng vòng lặp While (số)
number=int(input("Enter any number :")) #store a copy of this number temp=number #calculate reverse of this number reverse_num=0 while(number>0): #extract last digit of this number digit=number%10 #append this digit in reveresed number reverse_num=reverse_num*10+digit #floor divide the number leave out the last digit from number number=number//10 #compare reverse to original number if(temp==reverse_num): print("The number is palindrome!") else: print("Not a palindrome!")Sử dụng chuỗi vòng lặp While
def check_palindrome(string): length = len(string) first = 0 last = length -1 status = 1 while(first<last): if(string[first]==string[last]): first=first+1 last=last-1 else: status = 0 break return int(status) string = input("Enter the string: ") print("Method 1") status= check_palindrome(string) if(status): print("It is a palindrome ") else: print("Sorry! Try again")KIỂM TRA MÃ
Đầu vào – Bà
Đầu ra - Nó là một bảng màu
Đây là một cách tiếp cận tốt, nhưng Python cho phép chúng ta sử dụng hàm đảo ngược. Chúng ta biết rằng một từ được đọc xuôi và ngược nếu giống nhau là một từ ngược chiều. Do đó, chúng ta hãy tạo các chuỗi tiến và lùi cho cùng một chuỗi và kiểm tra xem hai chuỗi có giống nhau không
Sử dụng chức năng đảo ngược
def check_palindrome_1(string): reversed_string = string[::-1] status=1 if(string!=reversed_string): status=0 return status string = input("Enter the string: ") status= check_palindrome_1(string) if(status): print("It is a palindrome ") else: print("Sorry! Try again")KIỂM TRA MÃ
Đầu vào. Nhập chuỗi. tiếng Malayalam
đầu ra. nó là một bảng màu
Đây là một cách tiếp cận tốt, nhưng Python cho phép chúng tôi sử dụng chức năng đảo ngược. Chúng ta biết rằng một từ đọc xuôi và ngược nếu từ đó là từ ngược chiều. Do đó, chúng ta hãy tạo các chuỗi tiến và lùi cho cùng một chuỗi và kiểm tra xem hai chuỗi có giống nhau không
Sử dụng chức năng đảo ngược
def check_palindrome_1(string): reversed_string = string[::-1] status=1 if(string!=reversed_string): status=0 return status string = input("Enter the string: ") status= check_palindrome_1(string) if(status): print("It is a palindrome ") else: print("Sorry! Try again")KIỂM TRA MÃ
Đầu vào. Nhập chuỗi. tiếng Malayalam
đầu ra. nó là một bảng màu
Chương trình Palindrome trong Python
Trong bài viết này, chúng ta sẽ xem các cách khác nhau để triển khai chương trình palindrome trong Python
Chuỗi Palindrome
Phương pháp 1
- Tìm mặt trái của một chuỗi
- Kiểm tra xem mặt sau và bản gốc có giống nhau hay không
bước.
- Chúng tôi tạo một chức năng ispalindrome
- Trả về một biến bằng cách cắt tham số theo cách ngược lại
- Trong mã trình điều khiển của chúng tôi, chúng tôi đã viết một chuỗi
- Cuối cùng, trong điều kiện if-else của chúng tôi, chúng tôi thực hiện nếu nó là một bảng màu in có hoặc in không
Phương pháp 2
- Sử dụng vòng lặp
bước.
- Một vòng lặp được chạy từ đầu đến một nửa độ dài và kiểm tra ký tự đầu tiên đến ký tự cuối cùng của chuỗi
- Và kiểm tra từ ký tự thứ hai đến ký tự cuối cùng thứ hai của chuỗi
- Nếu bất kỳ ký tự nào không khớp, thì đó không phải là bảng màu
Phương pháp 3
- Sử dụng hàm có sẵn để đảo ngược chuỗi
bước
Trong phương pháp này, chúng tôi đang sử dụng một hàm được xác định trước ‘. tham gia'
Phương pháp 4
- Sử dụng đệ quy
bước
Phương thức này so sánh phần tử đầu tiên và phần tử cuối cùng của chuỗi và cung cấp cho phần còn lại của chuỗi con một lệnh gọi đệ quy tới chính nó
Palindrom trong danh sách liên kết
Hãy đẩy mạnh điều này và xem xét một cấu trúc dữ liệu khác. Nếu dữ liệu được lưu trữ trong danh sách liên kết thì sao? . Danh sách được liên kết là một cấu trúc dữ liệu có cấp phát bộ nhớ không liền kề
Chúng ta sẽ bắt đầu bằng việc định nghĩa một danh sách liên kết trong python
________số 8_______KIỂM TRA MÃ
Đầu ra –3, 7, 3 – Đúng
1 – Đúng
Logic để kiểm tra xem một danh sách được liên kết có phải là một bảng màu hay không là phiên bản đã sửa đổi của phiên bản chúng tôi đã triển khai trên các chuỗi và mảng. Chúng tôi kiểm tra xem đảo ngược của danh sách được liên kết có giống với chuỗi ban đầu không. Thay vì đảo ngược toàn bộ danh sách được liên kết và lưu trữ nó ở một vị trí tạm thời, chúng tôi đảo ngược nửa đầu của danh sách được liên kết và kiểm tra xem nửa đầu và nửa sau có khớp không sau khi đảo ngược
Xem thuật toán a* trong Trí tuệ nhân tạo
Do đó, chúng tôi định nghĩa một hàm gọi là palindrome, có các tham số nút, var (viết tắt của biến), trước đó và tạm thời. Chúng tôi chuyển đến cuối danh sách bằng cách sử dụng biến var ở dòng 29 và trong khi đó, chúng tôi lưu trữ dữ liệu nút cuối cùng trong biến prev. Do đó, so sánh trước. val và đuôi. val ở dòng 41 cho chúng ta câu trả lời
# Test Cases list_1 = Solution([7, 8, 6 , 3 , 7 ,3 , 6, 8, 7]) print(list_1.palindrome()) list_2 = Solution([6 , 3 , 4, 6]) print(list_2.palindrome()) list_3 = Solution([3, 7 ,3 ]) print(list_3.palindrome()) listl_4 = Solution([1]) Print( list_4.palindrome())Trong bài viết này, chúng tôi đã xem xét palindromes từ trong ra ngoài và hiểu chúng một cách thấu đáo. Hãy thử phát triển các kỹ thuật triển khai tốt hơn bằng cách sử dụng các cấu trúc dữ liệu khác nhau để cải thiện lệnh của bạn đối với mã hóa. Chúng tôi sẽ tiếp tục đăng nhiều bài viết khác về triển khai cấu trúc dữ liệu và thuật toán bằng Python. Hãy theo dõi và đọc 10 cuốn sách hàng đầu về Python
Đọc thêm
- Giai thừa của một số trong Python
- Chuyển đổi danh sách thành chuỗi trong Python
- Chuỗi Fibonacci trong Python
- Hướng dẫn Python
- Hàm đánh giá trong Python
Bắt đầu Hành trình Python của bạn với Great Learning, nơi cung cấp khóa học Python miễn phí với chương trình đào tạo đẳng cấp thế giới. Cho dù bạn quan tâm đến học máy, khai thác dữ liệu hay phân tích dữ liệu, Great Learning đều có khóa học dành cho bạn