Hướng dẫn how do you count palindromes in python? - làm thế nào để bạn đếm palindromes trong python?

Viết một chương trình bằng Python để đếm tất cả các từ palindrom có ​​trong một câu hoặc chuỗi.

Example:

Input:   "mom and dad are talking"
Output:  2

Input: "mom and dad are going to malayalam"
Output:  3

Đối với điều này, chúng ta cần lặp qua từng từ trong câu và so sánh từng từ với đảo ngược tương ứng của nó. Nếu chúng bằng nhau thì chúng ta sẽ tăng số lượng.

Trong Python, một từ có thể dễ dàng bị đảo ngược bằng từ [::-1]word can be easily reversed by word[::-1]

Thay vì đếm, chúng tôi sẽ lưu trữ tất cả các từ palindrom trong một danh sách, để nó có thể được in hoặc sử dụng cho các mục đích khác.

l=[]  #empty list

st="mom and dad are going to malayalam"

#looping through each word in the string
for word in st.split():
    #if word is equal to its reverse then it is palindrome
    if word==word[::-1]:
        l.append(word)    #add word to list

print("Total  number of palindrome words in a sentence: ",len(l))

Đầu ra

Total  number of palindrome words in a sentence: 3

Nếu bạn có bất kỳ đề xuất hoặc nghi ngờ thì hãy bình luận bên dưới.

Tôi đã tạo một chương trình trong Python về cơ bản bảo người dùng nhập một từ và cho họ biết liệu đó có phải là một palindrom hay không.

Chương trình của tôi:

def palindrome(word):
    return word == word[::-1]

word = input("Enter a word: ")
word2 = word.lower()

if word2 == "":
    print("You failed to input a word")
elif palindrome(word2) == True:
    print(word2,"is a palindrome!")
else:
    print(word2,"is not a palindrome!")

Tôi cần trợ giúp sửa đổi chương trình của mình để nó cho phép người dùng nhập câu và đếm số lượng từ trong câu là palindromes. Khi tôi thực hiện chương trình, tôi muốn nó xuất ra palindromes trong câu.

Tôi đã phải vật lộn với điều này trong nhiều ngày và dường như tôi không thể tìm ra nơi để bắt đầu. Trợ giúp sẽ được nhiều đánh giá cao. Ngoài ra, tôi cần sửa đổi chương trình của mình ở trên, không tạo ra một chương trình hoàn toàn khác.

Hỏi ngày 17 tháng 10 năm 2015 lúc 18:54Oct 17, 2015 at 18:54

Bạn cần chia chuỗi thành các từ sau đó kiểm tra xem mỗi từ là một palindrom bằng cách sử dụng comp danh sách, độ dài của danh sách cũng sẽ cung cấp cho bạn số lượng:

def palindrome(word):
    return word == word[::-1]

# split sentence into words and filter out the non palindromes
sentence = [w for w in input("Enter a sentence: ").split() if palindrome(w)]

print(" There are {} palindromes in your sentence\n.".format(len(sentence)))
# print each palindrome from our list
for pal in sentence:
    print("{} is a palindrome".format(pal))

Nếu bạn muốn bắt chước mã của riêng mình, hãy giữ số lượng khi bạn lặp lại danh sách các từ tăng số lượng nếu chúng ta có một palindrom:

sentence = input("Enter a sentence: ").split()

count = 0
for w in sentence:
    if palindrome(w):
        count += 1
        print("{} is a palindrome.")
    else:
        print("{}  is not a palindrome.")
print(" There are {} palindromes in your sentence\n.".format(count))

Để bắt một chữ cái đơn lẻ:

def palindrome(word):
    if len(word) > 1:
        return word == word[::-1]
    return word.isalpha()

Đã trả lời ngày 17 tháng 10 năm 2015 lúc 18:57Oct 17, 2015 at 18:57

Hướng dẫn how do you count palindromes in python? - làm thế nào để bạn đếm palindromes trong python?

7

Đối với mỗi vị trí trong chuỗi mã của bạn, mã của bạn kiểm tra tất cả các chuỗi con bắt đầu ở vị trí đó. Ví dụ: với s = 'a2b3bb3443bab' và i = 3, mã kiểm tra '3', '3b', '3bb', '3bb3', ..., '3bb3443bab'. Đó là chuỗi o (n^2) để kiểm tra palindrom.

Thay vào đó, đối với mỗi vị trí trong chuỗi, hãy kiểm tra các palindomes tập trung vào vị trí đó. Ví dụ: với s = 'a2b3bb3443bab' và i = 3, hãy kiểm tra các chuỗi con '3', 'b3b' và '2b3bb'. Dừng lại ở đó, bởi vì không có chuỗi nào khác tập trung vào i = 3 có thể là một palindrom. Nó cũng cần kiểm tra palindromes có độ dài chẵn như tại i = 4, trong đó chúng tôi kiểm tra 'BB', '3BB3' và dừng ở 'B3BB34'. Tôi nghĩ rằng đó là O (n*p) trong đó p là chiều dài trung bình của palindrom (nhỏ hơn n). Dường như mất khoảng 2/3 miễn là bạn mã.

def pcount(s):
    count = 0
    
    for i in range(len(s)):
        # count the odd-length palindromes
        # centered at s[i]
        j=i
        k=i
        while j>=0 and k=0 and k

Làm thế nào để bạn đếm số lượng palindromes?

Vì vậy, ví dụ, nếu bảng chữ cái của bạn bao gồm 26 chữ cái chữ thường A-Z và bạn muốn có một chuỗi có 9 ký tự, thì n = 26 và chuỗi có độ dài 2K+1 với k = 4; Do đó, số lượng palindromes có thể là 265 = 11.881.376.265=11,881,376.

Làm thế nào để bạn tìm thấy palindromes trong Python?

Thuật toán palindrom..
Đọc số hoặc chữ cái ..
Giữ chữ cái hoặc số trong một biến tạm thời ..
Đảo ngược chữ cái hoặc số ..
So sánh biến tạm thời với chữ cái hoặc số đảo ngược ..
Nếu cả hai chữ cái hoặc số đều giống nhau, hãy in "Chuỗi/số này là một palindrom.".

Làm thế nào để bạn tìm thấy tất cả palindromes trong một chuỗi trong Python?

Khoa học dữ liệu thực tế sử dụng Python..
Đếm: = 0 ..
Đối với i trong phạm vi 0 đến chiều dài nếu chuỗi.Đối với J trong phạm vi I + 1 đến chiều dài của chuỗi + 1. TEMP: = chuỗi con từ chỉ mục i đến j.Nếu temp là palindrom, thì hãy tăng số lượng 1 ..
Quay lại quầy ..

Làm thế nào để bạn tìm thấy số lượng các chuỗi palindromic?

Đưa ra một chuỗi s, trả lại số lượng các chuỗi palindromic không trống khác nhau trong s.Vì câu trả lời có thể rất lớn, hãy trả lại modulo 109 + 7.Một phần trăm của một chuỗi có được bằng cách xóa số 0 hoặc nhiều ký tự khỏi chuỗi.Một chuỗi là palindromic nếu nó bằng với chuỗi đảo ngược.return it modulo 109 + 7 . A subsequence of a string is obtained by deleting zero or more characters from the string. A sequence is palindromic if it is equal to the sequence reversed.