本帖最后由 昨非 于 2021-1-15 15:02 编辑
还是这个注释内容def palindrome(string): #定义函数,传入参数(字符串)
length = len(string)
last = length-1 #求的长度减一作为其索引值
length //= 2 #索引值地板除2,得到中间字符的索引,以方便从两头依次按位比较
flag = 1 #是否是回文联的标实符
for each in range(length): #each从0开始取到整个字符串的中间位置
if string[each] != string[last]: #如果头不等于尾,(直接排除)
flag = 0#(直接淘汰的情况下,标实符变成0)
last -= 1 #last变小,说明尾部前移,下次循环中each增大,说明头部后移,一直到each=last(全部字符串的中间位置),索命找完了
if flag == 1: #标实符没变,说明是回文联
return 1
else: #相反
return 0
假设有7个字符
7地板除2得到3,所以3就是判断的中止条件(也就是楼上那位老师说的循环次数)
(下面的数字都是索引值,从1到6)
0和6比较,1和5比较,2和4比较,到3停止
去掉地板除 之后,岂不是要
让4和2比较,5和1比较,6和0比较
是不是比较了两遍 |