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

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

Bài Viết Liên Quan

Chủ Đề