Làm thế nào để bạn in số palindrome trong python?

Bạn có thể phải kiểm tra xem một số có phải là số đối xứng hay không trong lập trình hàng ngày và lập trình cạnh tranh. Thật đơn giản để đảo ngược một số và kiểm tra nó. Tuy nhiên, bạn cần thực hiện logic một lớp để kiểm tra khả năng đọc và giảm các dòng mã. Từ các ví dụ sau, bạn có thể hiểu số đối xứng trong python

Vài ví dụ. khởi hành, 1567651, 02/02/2020, Malayalam

Vì vậy, bài viết này chỉ cho bạn nhiều cách khác nhau để bạn có thể viết một chương trình để kiểm tra xem một đầu vào đã cho có phải là một đối xứng hay không, bằng cách sử dụng Python

Phương pháp 1

Giải pháp ngây thơ nhất mà tôi nghĩ đến là đảo ngược số và kiểm tra xem nó có bằng số đầu vào không. Nó có thể được thực hiện như sau

số = int(input());

reverse = 0

trong khi số > 0.  

    chữ số = số % 10

    reverse = reverse * 10 + chữ số 

    số = số // 10

nếu số == đảo ngược

print(“nó là một bảng màu. ”)

khác

print(“nó không phải là một bảng màu. ”)

Tuy nhiên, điều này ảnh hưởng đến khả năng đọc mã và có nhiều dòng mã hơn yêu cầu. Kiểm tra khóa học khoa học dữ liệu trực tuyến của chúng tôi để tìm hiểu thêm.   

Đây là một cách ngắn gọn và thú vị để kiểm tra một số chỉ bằng một dòng

Phương pháp 2

Mẹo là lấy số đầu vào dưới dạng str kiểu dữ liệu thay vì int. Sau đó, bạn có thể sử dụng [. -1] kỹ thuật cắt để thu được mặt trái của một chuỗi và kiểm tra sự bằng nhau trong chính câu lệnh if.

Phương pháp cắt lát giúp bạn xác định điều ngược lại. Bạn cũng có thể sử dụng tích hợp sẵn ‘’. tham gia (đảo ngược()). Có một số cách khác để đảo ngược một chuỗi, nhưng phần sau đây thảo luận về một chương trình số đối xứng đơn giản trong python.

Chương trình này so sánh chuỗi đảo ngược với chuỗi ban đầu. Nó trả về “True” nếu cả hai chuỗi bằng nhau, ngược lại nó trả về “False”

số = input() 

if số == số[. -1].

print(“nó là một bảng màu. ”)

khác.  

print(“nó không phải là một bảng màu. ”)

Phương pháp 3

Đây là một phương pháp đệ quy để kiểm tra xem một mảng có phải là một bảng màu hay không

def isPalindrome(số, bắt đầu, kết thúc).

    nếu bắt đầu >= kết thúc.

trả về Đúng

      if numbers[start] == numbers[ .

        return isPalindrome(số, bắt đầu + 1, kết thúc – 1) 

khác.  

        trả về Sai

số = danh sách (bản đồ (int, đầu vào (). tách ra()))

n=len(số)

if isPalindrome(số, 0, n-1)

print(“nó là một bảng màu. ”)

khác.  

print(“nó không phải là một bảng màu. ”)

Hàm isPalindrome kiểm tra xem phần tử mảng đầu tiên và cuối cùng có giống nhau hay không. Nếu không hàm lập tức trả về giá trị Sai. Mặt khác, nó kiểm tra đệ quy các phần tử cực trị tiếp theo cho đến khi hai con trỏ gặp nhau ở giữa.

Đọc. Ý tưởng & chủ đề dự án Python

Palindrome hoạt động như thế nào trong Python?

Đối số của hàm được xem xét và đảo ngược của nó được xác định. Điều này sau đó được lưu trữ trong một biến riêng biệt. Kỹ thuật chiều dài giúp xác định đảo ngược

Bước này xác định độ dài của biến và đảo ngược thủ công được sử dụng trên đầu độ dài

Biến thực và biến được lưu ngược được so sánh để xác định xem chúng có chứa cùng một giá trị hay không. số đối xứng trong python

Giá trị “True” được trả về từ hàm nếu cả hai giá trị đều khớp. Giá trị "Sai" được trả về từ hàm nếu cả hai giá trị không khớp

Thông báo “Chuỗi là một bảng màu” được in khi giá trị là “True”. Thông báo “Chuỗi không phải là bảng màu nhạt” được in khi giá trị là “Sai”

Các phương pháp tìm Palindrome trong Python

1) Không xác định đảo ngược của chuỗi

Nó liên tục so sánh các ký tự có ở chỉ mục đầu tiên và chỉ mục cuối cùng của chuỗi. Việc so sánh tiếp tục cho đến khi chúng không bằng nhau

Phần sau đây thảo luận về phương pháp này với sự trợ giúp của hai ví dụ

Ví dụ 1

Giá trị chuỗi “malayalam”

Nó so sánh các ký tự đầu tiên và cuối cùng và chúng bằng nhau. Sau đó, nó so sánh các ký tự cuối cùng thứ hai và thứ hai và chúng bằng nhau. Quá trình trong chương trình số đối xứng trong python này tiếp tục cho đến khi tất cả các ký tự được kiểm tra theo cách này. Do đó, chuỗi là một palindrome.

Ví dụ-2

Chuỗi giá trị “cửa hàng”

Chỉ có các ký tự đầu tiên và cuối cùng bằng nhau. Khi so sánh các ký tự cuối cùng thứ hai và thứ hai, chúng được tìm thấy không bằng nhau. Vì vậy, nó không phải là một palindrome

Bạn có thể thực hiện ý tưởng này thông qua hai con trỏ hoặc đệ quy. Trước tiên hãy thực hiện bằng cách sử dụng con trỏ. Bạn bắt đầu với con trỏ bắt đầu bằng 0 và con trỏ kết thúc ở chỉ số cuối cùng. Việc so sánh tiếp tục và nếu các ký tự bằng nhau, con trỏ bắt đầu sẽ tăng lên và con trỏ kết thúc sẽ giảm đi

Câu hỏi đặt ra trong trăn số palindrom này là khi nào trả về Sai. Không cần tìm kiếm các chỉ mục tiếp theo, vì vậy "Sai" được trả về nếu các ký tự cho bất kỳ bộ con trỏ nào không bằng nhau.

Khi nào trả về “True” trong the chương trình số đối xứng trong python ? .

Đối với Vòng lặp để kiểm tra Palindrome trong Python

Bạn có thể sử dụng vòng lặp “For” trong Python để lặp qua một chuỗi theo thứ tự ngược lại. Hãy xem cách sử dụng vòng lặp “For” để kiểm tra chương trình số đối xứng trong python.

s = 'Dan đáng thương đang sa sút'

def palindrome(s)

s = s. thấp hơn(). thay thế(' ', ")

chuỗi đảo ngược = ”

cho tôi trong phạm vi (len (s), 0, -1)

     reversed_string += s[i-1]

return a_string == Reverse_string 

in(s)

# trả lại. ĐÚNG VẬY

Đầu ra của chương trình trên cho thấy chuỗi đã nhập là Palindrome

phương thức checkPalindrome() để kiểm tra Palindrome trong Python

checkPalindrome() là một phương thức do người dùng định nghĩa, chấp nhận một giá trị và trả về một giá trị nếu đối ứng bằng chính phần tử đó. Vì vậy, chúng tôi đã chấp nhận số do người dùng cung cấp làm tham số cho phương thức checkPalindrome(). Do đó, biến trả về được khởi tạo với biến “kiểm tra”. Khi so sánh các giá trị của biến “kiểm tra”, nếu nó chứa 1 có nghĩa là giá trị đã cho là một bảng màu. Mặt khác, giá trị đã nhập không phải là một bảng màu

Ví dụ: nếu số đã nhập là “987569”. Sau khi đảo số, nó được so sánh với số đã nhập ban đầu. Nhưng cả hai đều không bằng nhau. Vì vậy, "987569" không phải là một số đối xứng

phương pháp Reverse() để kiểm tra Palindrome trong Python

Hàm Reverse() trong Python xác định xem giá trị hoặc chuỗi đã nhập có phải là một bảng màu hay không. Nó chấp nhận một loạt ký tự và trả về trình vòng lặp nghịch đảo. Thay vì danh mục danh sách [. -1], phương thức Reverse() được sử dụng để đảo ngược chuỗi giá trị trong chuỗi. Chuỗi thực và đảo ngược được so sánh các phần tử theo các phần tử. Cuối cùng, nó xác định xem số đó có phải là đối xứng hay không

Mã cho phương thức Reverse() để kiểm tra python số palindrome.

w = đầu vào()

nếu str(w) = = “”. tham gia (đảo ngược(w))

in ("Đó là một palindrome")

khác

in (“Nó không phải là một bảng màu nhạt) 

Ví dụ: bạn có thể sử dụng phương thức Reverse() để kiểm tra xem chuỗi “nayan” có phải là một palindrome hay không. Thứ nhất, “. Hàm join(reversed()) giúp phân tích nghịch đảo của chuỗi thực. Toán tử phương trình “==” được sử dụng để so sánh cả chuỗi thực và chuỗi nghịch đảo. Thông báo “Đó là một bảng màu” được in nếu chuỗi thực và chuỗi đảo ngược bằng nhau

Cách nhanh nhất để kiểm tra xem một chuỗi có phải là Palindrome hay không trong Python

Cách nhanh nhất để kiểm tra trăn số palindrome là lập chỉ mục chuỗi. Nó có thể hoạt động nhanh hơn tới 70 lần so với vòng lặp “For”.

Các kỹ năng khoa học dữ liệu hàng đầu cần học vào năm 2022

SL. Các kỹ năng khoa học dữ liệu hàng đầu cần học trong năm 20221Khóa học phân tích dữ liệuKhóa học thống kê suy luận2Chương trình kiểm tra giả thuyếtKhóa học hồi quy logistic3Khóa học hồi quy tuyến tínhĐại số tuyến tính để phân tích

Các câu hỏi phỏng vấn mã hóa phổ biến liên quan đến palindromes

#1 Chuỗi con palindromic dài nhất

Chỉ cho một chuỗi làm đầu vào, bạn phải trả về độ dài của chuỗi con palindromic dài nhất trong chuỗi

Ví dụ

Đầu vào. 'acbcbabcc'

đầu ra. 5  (‘cbabc’)

Cách tiếp cận

Nếu chúng ta cố gắng liên hệ điều này với một trong những vấn đề phổ biến nhất của DP, thì chuỗi con chung dài nhất, ở đây sự khác biệt là chúng ta . Vì chúng tôi biết một bảng màu chính xác bằng với mặt trái của nó, nên chúng tôi có thể tạo chuỗi thứ hai ngược lại với đầu vào đã cho của chúng tôi.

Bây giờ điều này trở nên giống hệt như việc tìm kiếm LCS

def LCSubstr(A, B, m, n).  

    LCSub = [[0 cho i trong phạm vi j in range(m+1)] 

    ans = 0

         cho i trong phạm vi(m+1).

        cho j trong phạm vi(n+1).

             if (i == 0 or j = . 0): 

                LCSub[i][j] = 0

             elif A[i-1] == B[j-1].

                        LCSub[i][j] = 1 + LCSub[i-1][j-1]

                and = max(and, CSub[i][j]) 

khác.  

                LCSub[i][j] = 0

    trả lại và 

str1 = input()

str2 = str1[. -1]

 m = len(str1) 

n = len(str2) 

print(‘Độ dài của chuỗi con palindromic dài nhất = ‘, LCSubstring(str1, str2, m, n))

Vì vậy, đối với đầu vào ở trên, chúng tôi thu được hai chuỗi là

‘acbcbabcc’

'ccbabcbca'

Chuỗi con chung dài nhất trở thành ‘cbabc’ có độ dài 5.

Đọc các bài báo phổ biến về Khoa học dữ liệu của chúng tôi

Con đường sự nghiệp khoa học dữ liệu. Hướng dẫn nghề nghiệp toàn diện Khoa học dữ liệu Tăng trưởng nghề nghiệp. Tương lai của công việc là đâyTại sao Khoa học dữ liệu lại quan trọng? . Họ làm gì? Myth Busted. Khoa học dữ liệu không cần Mã hóa Business Intelligence vs Khoa học dữ liệu. Sự khác biệt là gì?

#2 Kiểm tra xem Đảo chữ cái của Chuỗi có phải là Palindrome không

Đưa ra một chuỗi làm đầu vào, bạn phải kiểm tra xem có bất kỳ đảo chữ cái nào của chuỗi có thể là một bảng màu hay không và trả về có/không tương ứng

Ví dụ

Đầu vào. ‘trăn trăn’

đầu ra. Đúng

(trong khi bản thân chuỗi không phải là một bảng màu, một phép đảo chữ 'pythonnohtyp' có thể tạo thành một bảng màu)

Đầu vào. 'Harry Potter'

đầu ra. Không

Cách tiếp cận

Nếu bạn để ý kỹ, bất cứ khi nào chúng ta có một chuỗi đối xứng có độ dài bằng nhau, thì tất cả các ký tự ở nửa đầu đều được lặp lại ở nửa sau. Điều này có nghĩa là tất cả các ký tự có trong chuỗi đều xuất hiện chẵn số lần.

Khi độ dài là số lẻ, tất cả các ký tự ở bên trái của phần tử ở giữa (không bao gồm) xuất hiện cùng một số lần ở bên phải của phần tử ở giữa. Điều này có nghĩa là chỉ có một ký tự xuất hiện lẻ số lần (phần tử ở giữa) và tất cả các ký tự khác xuất hiện với số lần chẵn.

Hội thảo trên web về Khoa học Dữ liệu Độc quyền của upGrad dành cho bạn –

Thuyết trình Lãnh đạo Tư tưởng ODE

https. //cdn. nâng cấp. com/blog/ppt-by-ode-infinity. mp4

 

Sử dụng logic này, chúng ta có thể lưu trữ số lượng ký tự trong chuỗi dưới dạng hàm băm và kiểm tra các ràng buộc này để nhận được câu trả lời cần thiết

CHAR_RANGE = 256

str1 = đầu vào()

freq = [0 cho i trong phạm vi( 

cho i trong str1.

    freq[ord(i)] += 1  #ord(x) cung cấp giá trị unicode của x  

num_odds = 0

cho i trong phạm vi(CHAR_RANGE).

    if freq[i] & 1.

        num_odds += 1

       if (num_odds > 1).

in ("Có")

khác

     print(“Không”) 

Học viên của chúng tôi cũng đọc. Các khóa học Python miễn phí hàng đầu

Các kỹ năng khoa học dữ liệu hàng đầu cần học vào năm 2022

SL. Các kỹ năng khoa học dữ liệu hàng đầu cần học trong năm 20221Khóa học phân tích dữ liệuKhóa học thống kê suy luận2Chương trình kiểm tra giả thuyếtKhóa học hồi quy logistic3Khóa học hồi quy tuyến tínhĐại số tuyến tính để phân tích

Sự kết luận

Tóm lại, các vấn đề đối xứng rất phổ biến và thú vị. Chúng rất hữu ích để giải các câu đố toán học khác nhau và các câu hỏi lập trình cạnh tranh

Nếu bạn tò mò muốn tìm hiểu về khoa học dữ liệu, hãy xem Chương trình PG cấp cao về Khoa học dữ liệu của IIIT-B & upGrad được tạo cho các chuyên gia đang làm việc và cung cấp hơn 10 nghiên cứu điển hình & dự án, hội thảo thực hành thực tế, cố vấn với các chuyên gia trong ngành, 1

Độ phức tạp thời gian của chương trình Palindrome là gì?

Số lượng các hoạt động cơ bản được thực hiện bởi phương pháp này thường được sử dụng để ước tính độ phức tạp của thời gian, giả sử rằng mỗi quy trình cơ bản cần một khoảng thời gian nhất định để hoàn thành. Độ phức tạp về thời gian của việc xác định một số có phải là một số đối xứng hay không là O(log10(n)). Khi chúng tôi kiểm tra các giá trị có phải là một bảng màu không, chúng tôi chia số hoặc giá trị cho 10 trong mỗi lần lặp lại. Kết quả là, độ phức tạp thời gian bằng với số chữ số trong một số

Toán tử / khác với toán tử // trong Python như thế nào?

Khi chúng ta sử dụng toán tử chia, tôi. e. , một dấu gạch chéo (/) trong Python, trình biên dịch chỉ cần chia hai giá trị ở bên phải và bên trái của dấu gạch chéo. Nhưng khi chúng ta sử dụng dấu gạch chéo kép (//), tôi. e. , phép chia tầng, chúng tôi yêu cầu trình biên dịch thực hiện quá trình chia điển hình, nhưng kết quả nó mang lại là số nguyên lớn nhất có thể gần với câu trả lời. Số nguyên này nhỏ hơn hoặc bằng kết quả của phép chia bình thường

Mức lương đầu vào của Nhà phát triển Python là bao nhiêu?

Một thực tế ai cũng biết là Python được sử dụng rộng rãi trong hầu hết các ngành công nghiệp và công ty, khiến Python trở thành ngôn ngữ điện toán được trả lương cao thứ hai. Python cũng là ngôn ngữ lập trình yêu thích của sinh viên và các chuyên gia vì nó dễ học và rất linh hoạt. Mức lương đầu vào của Nhà phát triển Python ở Ấn Độ trung bình khoảng 427.293 INR mỗi năm. Các chuyên gia học Python có rất nhiều phạm vi vì Python cũng được sử dụng trong các lĩnh vực khác như Khoa học dữ liệu và Học máy