PAT乙级1005最后一个测试点答案错误

img

x=int(input())
d=list(map(int,input().split(' ')))
h=[]
g=0
m=[]
def digui(z,g):
    if z==1:
        return 1
    if z in h:
        return 1
    if not(z in h) and g==1:
     h.append(z)
    g=1
    if z%2==0:
        return(digui(int(z/2),g))
    else:
        return(digui(z*3+1,g))
for i in d:
    g=0
    digui(i,g)
for i in range(len(d)-1,-1,-1):
    if not(d[i] in h):
      m.append(d[i])
m.sort(reverse=True)
for j in range(0,len(m)):
    print(m[j],end="")
    if j<len(m)-1:
        print(end=" ")

img

卡到了最后一个测试点上了前几个都对了最后一个提示是答案错误 本人新接触python实在想不出来错误原因
附 d为初始列表(获取输入的数)
h为已经验证的数的列表
m为结果列表

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^