回联文
##回联文def hlw(string):
length = len(string)
last = length - 1
length //= 2
flag = 1
for i in range(length):
if string != string:
flag = 0
last -= 1
请问 for i in range(length): 这一句为什么不是 length - 1 如果是(length-1)不刚好是限定下标,不使其越界么,if string != string: 而这一句条件为何是不等于呢,有大佬帮忙解答下么 首先一个 是 回文联 不是 回联文
回文联基本上是一个这样的构造
abcdedcba
为什么不是 length - 1,因为没有必要,range 是左闭右开的,你这里也就是 [0,length) 可以取到 0 但是取不到 length
所以用 length 不存在数组越界的问题
之所以不等于,是为了检查是不是回文联
正如我上面说的,回文联是 abcdedcba
比如来了一个 abcdegcba
那么你看,a = a b = b c = c 但是 d != g
因为 d != g 所以不是回文联,那么 flag = 0
flag 用来传值,看到底是不是回文联
初始化 flag 为 1,当发现两端的字符不相同,flag = 0 Daniel_Zhang 发表于 2021-2-25 23:53
首先一个 是 回文联 不是 回联文
回文联基本上是一个这样的构造
{:5_108:}抱歉哈,打错了,多谢
页:
[1]