019课后作业,回文联方法1算法求解。
#方法1def duilian(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 duilian(string) == 1:
print ("是回文联")
else:
print ("不是回文联")
#方法2
def duilian(string):
list1 = list(string)
list2 = list(reversed(list1))
if list1 == list2:
return "是回文联”
else:
return "不是回文联"
方法2看上去就很简单,自己也是这么想的,看了答案之后方法1里面last变量还有length //= 2还有string不太理解是什么意思,求解答
{:10_277:} 假设你有6个字符串需要判定,
是不是只要判定前三个跟后三个是否相符就可以了?
前三个就是lengh//2,切半的结果。
最后1个就是lengh的总长度 -1 。(字符串长度为6的话,下标只到5.) last变量还有length //= 2还有string不太理解是什么意思
last 变量是指字符串最后一个元素的位置参数,可以当作成 -1
length // 2 的原因是 没错 string 判断都是判断第一个和最后一个字符串是否相等 ,每次这样判断都是拿两个字符串来判断,所以只需要判断 字符串长度一半的次数
string知道第一个为什么,应该能理解这个了吧,就是指最末尾的 元素 相当于 string[-1] Twilight6 发表于 2020-6-2 13:59
last 变量是指字符串最后一个元素的位置参数,可以当作成 -1
length // 2 的原因是 没错 string 判断 ...
哦哦原来是这样,就相当于length初始索引是0 就是第一个呗,然后last -= 1的化,再索引last就相当于从后往前索引,所以要 - 1是这个意思吧~ Aber 发表于 2020-6-2 14:14
哦哦原来是这样,就相当于length初始索引是0 就是第一个呗,然后last -= 1的化,再索引last就相当于从 ...
聪明{:10_297:} 楼主问了一些我想问的问题,,太棒了呜呜X﹏X heidern0612 发表于 2020-6-2 13:57
假设你有6个字符串需要判定,
是不是只要判定前三个跟后三个是否相符就可以了?
假设是7个字符串,
只判断前一半和后一半,
中间一个公有的就忽略。 wanのcc 发表于 2021-3-25 16:32
假设是7个字符串,
只判断前一半和后一半,
中间一个公有的就忽略。
有什么疑问吗?{:10_272:}
忽略了不就忽略了
1234321
中间那个 4 忽略了,并不妨碍去判断是否是回文联
1234321 倒过来不还是 1234321 ?
中间那个压根就不需要去判断,因为是共有的,不论正着还是反着,中间那个都不会变的
页:
[1]