|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def palindrome(string):
length = len(string)
last = length-1
length //= 2
flag = 1
for each in range(length):
if string[each] != string[last]:
flag = 0
last -= 1
if flag == 1:
return 1
else:
return 0
string = input('请输入一句话:')
if palindrome(string) == 1:
print('是回文联!')
else:
print('不是回文联!')
这里面的last -= 1 与上面到底如何联系啊?
假如string = 上海自来水来自海上;length=9,last=7,length=4,for each in range(4),if string(each) != string(7)......
后面的last -= 1到底怎么减的,逻辑有点不懂。
假如string = 上海自来水来自海上;length=9,last=8,length=4,for each in range(4), each 是从0 到3,last 起始值是8也就是上,如果string的第一位不等于最后一位,把flag设为0,否则last 等于 7 继续循环 此时 each 是1,last是7,也就是比较第二位和倒数第二位,如果不等flag设为0,否则last 等于6, 继续循环,each此时是2,last是6,比较第三位和倒数第三位,如果不等flag设为0,否则last 等于5, 继续循环,each此时是3,last是5,比较第四位和倒数第四位,如果不等flag设为0,否则last 等于4,退出循环。判断flag等于1还是0,是1返回1 ,是0返回0。
|
|