str 形式のテキスト ブロックを含むテキストを 1 つの引数として取り、「対称」単語のソート済みリストを返す関数を作成する必要があります。対称単語は、すべての値 i について、単語の先頭からの文字 i の位置と、単語の末尾からの文字 i の位置が、アルファベットのそれぞれの端から等距離にある単語として定義されます。たとえば、bevy は対称的な単語です。b (単語の先頭から 1 番目の位置) はアルファベットの 2 番目の文字であり、y (単語の末尾から 1 番目の位置) はアルファベットの最後から 2 番目の文字です。e (単語の先頭から 2 桁) はアルファベットの 5 番目の文字であり、v (単語の末尾から 2 桁) はアルファベットの最後から 5 番目の文字です。
例えば:
>>> 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 の位置を考慮していません。配置方法がわからないためです。誰でも私を助けることができますか?