frankzhang57 发表于 2017-8-29 07:44:55

对称测试

想写一个方程symmetric_words(wlist),要求输入一个列表,包含各种英文单词,测试列表中的每一个单词,如果单词本身例如"bevy"的第一个和最后一个字母"b" 和 “y”对应英文字母表中的“b”和“y”,他们各自又跟首尾等距离,例如b是第二个字母,y是倒数第二个字母。e是第五个字母,v是倒数第五个字母。那么满足此条件的就是对称单词。如果满足,则返回到输出列表。
举个例子,比如print(symmetric_words(["boy", "dog", "bevy", "bully"])) 需要返回的是['bevy']
print(symmetric_words(["neither", "a", "borrower", "nor", "a", "lender", "be"])) 需要返回的则是[ ]
我写了一段,但是有问题。新手,请多多指教!!'

def symmetric_words(wlist):
    alphabet1 = "abcdefghijklmnopqrstuvwxyz"
    alphabet2 = "zyxwvutsrqponmlkjihgfedcba"
    empty = []
    for each in wlist:
      for n in range (0,len(each)):
            if len(each) % 2 != 0:
                break
            elif alphabet1.index(each) != alphabet2.index(each[-n-1]):
                break
            else:
                empty.append(each)
    return empty
            

冬雪雪冬 发表于 2017-8-29 08:40:35

def symmetric_words(wlist):
    alphabet1 = "abcdefghijklmnopqrstuvwxyz"
    alphabet2 = "zyxwvutsrqponmlkjihgfedcba"
    empty = []
    for each in wlist:
      for n in range (0,len(each)):#算到一半就可以了
            if len(each) % 2 != 0:
                break
            elif alphabet1.index(each) != alphabet2.index(each[-n-1]):
                break
      else:#这两行左移,如果for循环走完,没有break则...
            empty.append(each)
    return empty

frankzhang57 发表于 2017-8-29 08:53:38

冬雪雪冬 发表于 2017-8-29 08:40


谢谢~~ 在测试的时候达到了预期的要求,但是test 的时候显示hidden test没有通过。不知道什么意思
页: [1]
查看完整版本: 对称测试