Trả lời cho câu hỏi #217495 trong Python cho SAI
Palindrom lớn nhất
Bạn được cho một số nguyên
Đầu vào chứa một số nguyên duy nhất
Đầu ra phải là một số nguyên duy nhất là palindrom lớn nhất nhỏ hơn đầu vào đã cho.
Được
N = 45,44 là con số lớn nhất là một palindrom nhỏ hơn 45.
N = int[input[]]
palindrome = -1
# 11 - smallest palindrome
for i in range[11, N]:
if i > palindrome and str[i][::-1] == str[i]:
palindrome = i
if palindrome == -1:
print['No palindrome']
else:
print[palindrome]
Tìm hiểu thêm về sự giúp đỡ của chúng tôi với các bài tập: Python
Trả lời câu hỏi #223916 trong Python cho Hari
Palindrom lớn nhất
Bạn được cho một số nguyên n. Tìm palindrom lớn nhất ít hơn n.
ĐẦU VÀO
Đầu vào chứa một số nguyên duy nhất
Đầu ra
Đầu ra phải là một số nguyên duy nhất là palindrom lớn nhất nhỏ hơn đầu vào đã cho.
GIẢI TRÌNH
Cho n = 45
44 là con số lớn nhất là một palindrom nhỏ hơn 45
Đầu vào mẫu 1
45
Đầu ra mẫu 1
44
Đầu vào mẫu 2
79
Đầu ra mẫu 2
77
N = int[input['Enter the number : ']]
palindrome = -1
# 11 - smallest palindrome
for i in range[11, N]:
if i > palindrome and str[i][::-1] == str[i]:
palindrome = i
if palindrome == -1:
print['No palindrome']
else:
print[palindrome]
Tìm hiểu thêm về sự giúp đỡ của chúng tôi với các bài tập: Python
Tôi có một bài tập Python muốn tôi viết một chương trình tìm thấy palindrom dài nhất trong một văn bản nhất định. Tôi biết có những ví dụ về chức năng này trong các ngôn ngữ khác trên trang web này, nhưng tôi là người mới bắt đầu trong Python và đang gặp khó khăn trong việc viết mã.
Đây là cách tôi hiện đang xác định palindromes:
def is_palindrome[word]:
x = 0
for i in range [len[word]/2]:
if [word[x]] == [word[len[word]-x-1]]:
x+=1
if x == [len[word]/2]:
return True
return False
Asclepius
52.9K16 Huy hiệu vàng154 Huy hiệu bạc137 Huy hiệu đồng16 gold badges154 silver badges137 bronze badges
Đã hỏi ngày 24 tháng 3 năm 2015 lúc 3:47Mar 24, 2015 at 3:47
5
Cách thay thế
def Is_palindrome[word]:
return word==word[::-1]
# Assuming text is defined
print max[[word for word in set[text.split[]] if Is_Palindrome[word]], key=len]
Đã trả lời ngày 24 tháng 3 năm 2015 lúc 4:02Mar 24, 2015 at 4:02
Kvivekkvivekkvivek
3.2191 Huy hiệu vàng14 Huy hiệu bạc17 Huy hiệu đồng1 gold badge14 silver badges17 bronze badges
4
Tôi đã sử dụng:
def Is_palindrome[word]:
x = 0
for i in range [len[word]/2]:
if [word[x]] == [word[len[word]-x-1]]:
x+=1
if x == [len[word]/2]:
return True
return False
def longest_palindrome[text]:
lst = text.split[] #Split it into words [cannot have punctuation]
palindromes = [] #List that contains the palindromes
long_len = 0 #Length of the longest palindrome
longest = "" #The actual longest palindrome
for i in lst: #Loop through all the words
if Is_palindrome[i]: #If the word is a palindrome
palindromes.append[i] #Add it to the palindrome list
for i in palindromes: #Loop through the palindrome list
if len[i] > long_len: #If the palindrome is longer than the longest one
longest = i #Set it as the longest one
longest_len = len[i] # Set the length of the longest one to the length of this one
return longest
Đã trả lời ngày 24 tháng 3 năm 2015 lúc 4:00Mar 24, 2015 at 4:00
jkdjkdjkd
1.0451 Huy hiệu vàng11 Huy hiệu bạc27 Huy hiệu đồng1 gold badge11 silver badges27 bronze badges
1
def fastLongestPalindromes[seq]:
seqLen = len[seq]
l = []
i = 0
palLen = 0
while i < seqLen:
if i > palLen and seq[i - palLen - 1] == seq[i]:
palLen += 2
i += 1
continue
l.append[palLen]
s = len[l] - 2
e = s - palLen
for j in range[s, e, -1]:
d = j - e - 1
if l[j] == d:
palLen = d
break
l.append[min[d, l[j]]]
else:
palLen = 1
i += 1
l.append[palLen]
lLen = len[l]
s = lLen - 2
e = s - [2 * seqLen + 1 - lLen]
for i in range[s, e, -1]:
d = i - e - 1
l.append[min[d, l[i]]]
return l
def getPalindrome[text]:
lengths = fastLongestPalindromes[text]
start = 0
end = 0
length = 0
for i in range[len[lengths]]:
if[lengths[i] > length]:
length = lengths[i]
end = i//2+[lengths[i]//2]
start = i//2-[lengths[i]//2]
if[i%2 == 1]:
start +=1
return text[start:end]
Trong thời gian tuyến tính. [Mã dài hơn, nhưng nhanh hơn các câu trả lời khác, ít nhất là các chuỗi dài].
Nguồn: //www.akalin.cx/longest-malindrom-linear thời gian [chức năng đầu tiên được sao chép]
Đã trả lời ngày 24 tháng 3 năm 2015 lúc 4:11Mar 24, 2015 at 4:11
SoronbesoronbeSoronbe
8865 Huy hiệu bạc12 Huy hiệu Đồng5 silver badges12 bronze badges
3