大家好!
我正在尝试制作一个能够搜索回文的python程序。
如果我的输入仅仅是要评估的文字,那么编写代码就不会有问题
def ispalindrome(word):
return word == word[::-1]
但是我正在尝试做更多的事情。
我想检查字符串是否“包含”回文
例如,
>>>ispalindrome('rapparee')
rappar
我应该如何解决这个问题?
答案 0 :(得分:0)
我将获得所有子串,按长度排序,然后对其进行迭代:
# Get a dictionary of length : [substrings]
def get_all_substrings(input_string):
length = len(input_string)
substrings = [input_string[i:j+1] for i in range(length) for j in range(i,length)]
length_substring_dict = dict()
for substring in substrings:
dictionary_entry = length_substring_dict.get(len(substring), [])
dictionary_entry.append(substring)
length_substring_dict[len(substring)] = dictionary_entry
return length_substring_dict
def ispalindrome(word):
return word == word[::-1]
# Iterate through the substrings, starting with the longest and check for palindromes.
def has_palindrome(word):
for length, substring_list in sorted(get_all_substrings(word).items(), reverse=True):
for substring in substring_list:
if ispalindrome(substring):
return substring