gpt4 book ai didi

Python;链表和遍历!

转载 作者:行者123 更新时间:2023-11-28 21:30:09 25 4
gpt4 key购买 nike

现在在学校开始用 python 编程,我不知道如何处理这个问题。有什么想法吗?

输入由换行符分隔的整数组成。你的程序应该在链表中提交它们,遍历链表并打印最大的数字。

取第一个数字,然后执行“如果下一个数字更大,取那个数字,否则,保留当前数字,并在列表中向下移动并重复”的操作

然后当它到达列表的末尾时,它会打印它的值。

from sys import stdin

class Kubbe:
vekt = None
neste = None
def __init__(self, vekt):
self.vekt = vekt
self.neste = None

def spor(kubbe):
# WRITE YOUR CODE HERE
# Creates linked list
forste = None
siste = None
for linje in stdin:
forrige_siste = siste
siste = Kubbe(int(linje))
if forste == None:
forste = siste
else:
forrige_siste.neste = siste

# Calls the solution function and prints the result
print spor(forste)

输入:例子

54
37
100
123
1
54

要求的输出

123

最佳答案

“链表”在 Python 中很少使用——通常,人们只使用 list,Python 内置列表,它实际上更像是一个“动态向量”。因此,将链表指定为练习约束的一部分是很奇怪的。

但要点是,您显示的代码已经创建了一个链表——头部位于 forste,并且对于每个节点, .neste 中的下一个节点指针,.vekt 中的有效载荷。因此,大概这不是您要问的内容,无论您的问题是什么文本。

在完全构建链表后(即在 spor 的当前代码末尾)循环遍历链表的简单方法是

current = forste
while current is not None:
...process current.vekt...
current = current.neste

在你的情况下,“过程”部分的逻辑当然是,正如你的 Q 的文字已经说的那样:

   if current.vekt > themax:
themax = current.vekt

唯一的微妙之处是,在这个while 循环之前,您需要初始设置themax 到“可能的最低数”;在最近的 Python 版本中,“负无穷大”被可靠地记录和比较(虽然只是作为一个 float ,它仍然可以正确地与整数进行比较),所以

themax = float('-inf')

会起作用。更优雅的做法可能是最初将最大值设置为第一个有效载荷,避免弄乱无穷大。

关于Python;链表和遍历!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3575781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com