【发布时间】:2023-04-07 00:17:01
【问题描述】:
我不确定从以下 python 谜题开始。
“你持有一个链的链接。实现一个方法longerSide
来查找链的哪一侧有更多的链接,相对于你持有的链接。如果左侧有更多的链接返回Side.left
。如果右侧有更多链接,则返回Side.right
,如果两边的链接数量相等,或者如果链是闭环,则返回Side.none
。
例如,下面的代码应该输出True
:
left = ChainLink()
middle = ChainLink()
right = ChainLink()
left.append(middle)
middle.append(right)
print(left.longerSide() == Side.right)
我真的不知道如何处理这个问题。我想展示我迄今为止所做的一些事情,但我还没有创造出任何实质性的东西。到目前为止,我只定义了以下枚举
from enum import Enum
class Side(Enum):
NONE = 0
LEFT = 1
RIGHT = 2
如果有人有任何可以帮助我的建议或资源,我将不胜感激。
谢谢
【问题讨论】:
-
如果你能数出两边的链接数,那就很简单了。那你怎么能这样呢?至少,每个链接都需要记录其最左侧的链接(如果有)和最右侧的链接(如果有)——什么是合适的数据结构?
-
谢谢,在这种情况下,双向链表是合适的数据结构吗?
-
是的,这是一个不错的选择。现在,如何计算当前链接右侧的链接数量?
-
我会这样做:如果heldLink.next != None counter += 1 这是在正确的轨道上吗?
-
当然,这是您需要的循环的一部分。
标签:
python
algorithm
puzzle
chain
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决链式 Python 拼图: - Python技术站