Python最新版课后作业022动动手01提问:摩尔投票法的进阶操作
这道题我的思路是第一个超过 1/3 的数出来(我把它标记为major1),然后再重复对抗阶段 碰到major1就跳过,这样就把第二个超过 1/3 的数筛出来了(major2)代码如下:(我写的作业被版主删掉了,在群里问是因为我作业写错了,我对了下答案只有这里有出入,想问一下我的代码哪里错了)
具体代码如下:
list1 =
major = list1
counts = 0
for i in list1:
if counts == 0:
major = i
if i == major:
counts += 1
else:
counts -= 1
if list1.count(major) >= len(list1)/3:
print('major1=',major)
else:
print('no')
a = major
major = list1
for i in list1:
if i == a: #碰到major1就跳过#
continue
if counts == 0:
major = i
if i == major:
counts += 1
else:
counts -= 1
if list1.count(major) >= len(list1)/3:
print('major2=',major)
else:
print('nope') 你的代码怎么写的这么乱
两段for循环一模一样,用个函数封装下
把题目发出来给我看下
页:
[1]