我必须编写一个函数,它接受一个参数 text,其中包含一个 str 形式的文本块,并返回一个“对称”单词的排序列表。对称词被定义为一个词,其中对于所有值 i,字母 i 位置距单词开头的位置和字母 i 位置距单词末尾的位置与字母表的各个末端的距离相等。例如,bevy 是一个对称单词:b(从单词开头的 1 个位置)是字母表的第二个字母,y(从单词末尾的 1 个位置)是字母表的倒数第二个字母;e(距单词开头的 2 个位置)是字母表的第五个字母,而 v(距单词末尾的 2 个位置)是字母表的倒数第五个字母。
例如:
>>> symmetrics("boy bread aloz bray")
['aloz','boy']
>>> symmetrics("There is a car and a book;")
['a']
我能想到的解决方案就是这个,但我不能运行它,因为它是错误的:
def symmetrics(text):
func_char= ",.?!:'\/"
for letter in text:
if letter in func_char:
text = text.replace(letter, ' ')
alpha1 = 'abcdefghijklmnopqrstuvwxyz'
alpha2 = 'zyxwvutsrqponmlkjihgfedcba'
sym = []
for word in text.lower().split():
n = range(0,len(word))
if word[n] == word[len(word)-1-n]:
sym.append(word)
return sym
上面的代码没有考虑到 alpha1 和 alpha2 的位置,因为我不知道怎么写。有没有人可以帮助我?