对于这个解决方案,我发现最好的方法是使用递归。
递归是指函数调用自身来解决问题的较小部分。这就像通过将一个大谜题分解成较小的、相同的谜题来解决它。每次函数调用自身时,它都会处理原始问题的一小部分。
递归有两个主要部分:
基本情况:
这是递归停止的时候。这是问题的最简单的版本。将其视为“球门柱”。一旦到达,函数就会停止调用自身并开始返回结果。
在我们的例子中,这是当索引==方程参数的长度时。
递归案例:
这是函数调用自身来解决问题的较小部分的时候。
这就像每次都离基本情况更近一步。
在这个谜题中,目标是检查是否可以通过在一系列数字之间应用运算符( 、 *、||)来得出目标数字。
这是挑战:
尝试在当前号码和下一个号码之间应用。
尝试在当前数字和下一个数字之间应用 *。
尝试使用||组合两个数字(连接)。
继续此过程,直到:
使用所有数字,结果等于目标(Base Case)
或
在没有找到匹配的情况下探索所有可能性(递归情况)
您可以在这里找到 Python 和 C# 的解决方案
一如既往,请随时在 Twitter 上关注我,以获取跨多种媒体的更多提示、解决方案、文章和博客文章。
以上是AoC - DayBridge 修复的详细内容。更多信息请关注PHP中文网其他相关文章!