huangdongdong 发表于 2021-6-8 16:03:54

回文

def palindrome(string):
    length = len(string)
    last = length-1
    length //= 2
    flag = 1
    for each in range(length):
      if string != string:
            flag = 0
      last -= 1

    if flag == 1:
      return 1
    else:
      return 0

string = input('请输入一句话:')
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')
for each in range(length)这句中的length是length = len(string)还是length //=2中的length,还有length //= 2有什么作用,删掉也不影响结果。


yuedong 发表于 2021-6-8 16:03:55

length当然指的是最近的 length //= 2
的确不影响,但是影响一点速度吧,整除后只用判断一半的字数,不整除则是从头到尾有重复

huangdongdong 发表于 2021-6-8 16:25:32

yuedong 发表于 2021-6-8 16:14
length当然指的是最近的 length //= 2
的确不影响,但是影响一点速度吧,整除后只用判断一半的字数,不整 ...

明白了。我原以为string(last)中的last是一半中的最后一个,而其实是整句的最后一个。
页: [1]
查看完整版本: 回文