Chương trình Palindrome trong Python với việc sử dụng các hàm chuỗi

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ủ


  1. 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

Chương trình Palindrome trong Python với việc sử dụng các hàm chuỗi

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 Python

Bâ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

  1. 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;
  2. 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
  3. 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

  1. Sao chép số đầu vào trong một biến khác để so sánh chúng sau này
  2. 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
    1. 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
    2. Nối chữ số cuối để đảo ngược. đảo ngược = (đảo ngược * 10) + chữ số cuối
    3. Xóa chữ số cuối cùng khỏi số. số = số / 10
    4. Lặp lại quá trình này. trong khi (số > 0)
  3. Bây giờ chúng ta so sánh số đảo ngược với số ban đầu
  4. 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

  1. Tìm mặt trái của một chuỗi
  2. Kiểm tra xem mặt sau và bản gốc có giống nhau hay không
def isPalindrome(s):
	return s == s[::-1]

# Driver code
s = "kayak"
ans = isPalindrome(s)

if ans:
	print("Yes")

else:
	print("No")

bước.   

  1. Chúng tôi tạo một chức năng ispalindrome
  2. Trả về một biến bằng cách cắt tham số theo cách ngược lại
  3. Trong mã trình điều khiển của chúng tôi, chúng tôi đã viết một chuỗi
  4. 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
def isPalindrome(str):

	for i in range(O, int(len(str)/2)):
	    if str[i] != str[len(str)-i-1]:
		return False
	return True

# main function
s = "kayak"
ans = isPalindrome(s)

if (ans):
	print("Yes")

else:
	print("No")

bước.   

  1. 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
  2. Và kiểm tra từ ký tự thứ hai đến ký tự cuối cùng thứ hai của chuỗi
  3. 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
def isPalindrome(s):

	rev = ‘'.join(reversed(s))

	if (s == rev):
		return True
	return False

# main function
s = "kayak"
ans = isPalindrome(s)

if(ans):
	print("Yes")
else:
	print("No")

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
def isPalindrome(s):

	s = s.lower()

	1 = len(s)

	if 1 <2:
		return True

	elif s(0) == s{l - 1):

		return isPalindrome(s[1: l - 1])
	else:
		return False

s = "Kayak"
ans = isPalindrome(s)

	if ans:
		print("Yes")

	y else:
		print("No")

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 trình Palindrome trong Python với việc sử dụng các hàm chuỗi

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

  1. Giai thừa của một số trong Python
  2. Chuyển đổi danh sách thành chuỗi trong Python
  3. Chuỗi Fibonacci trong Python
  4. Hướng dẫn Python
  5. 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

Làm thế nào bạn có thể xây dựng một hàm để xem liệu một chuỗi có phải là một bảng màu không?

Cách tiếp cận giải pháp . Chúng tôi chuyển chuỗi đầu vào của mình dưới dạng đối số và hàm sẽ trả về true nếu chuỗi là một bảng màu và sai nếu ngược lại. isPalindrome() function to check if a string is a palindrome. We pass our input string as an argument and the function will return true if the string is a palindrome and false otherwise.

Làm cách nào để viết một hàm Python để kiểm tra xem một chuỗi đã truyền có phải là một bảng màu hay không?

xác định check_palin (str). cho tôi trong phạm vi (0, int (len (str)/2)). nếu str [i]. = str [len(str)-i-1]. return Sai return True str_1 = input (“Nhập một chuỗi. ”) ans = check_palin (str_1) if (ans). in ("Vâng, nó là một palindrome. ") khác. in ("Không, nó không phải là một palindrome. ”)