Algorithm 检查货币转换文件是否一致
这是在一次采访中被问到的。您将收到一个包含货币兑换率的文件Algorithm 检查货币转换文件是否一致,algorithm,graph,currency,Algorithm,Graph,Currency,这是在一次采访中被问到的。您将收到一个包含货币兑换率的文件 Sample File : Currency1 Currency2 Rate USD INR 50 GBP INR 100 GBP USD 3 .... 我们需要知道这个文件是否一致?例如,为了使上述文件保持一致,第三条记录应该是GBP->USD=2,而不是3
Sample File :
Currency1 Currency2 Rate
USD INR 50
GBP INR 100
GBP USD 3
....
我们需要知道这个文件是否一致?例如,为了使上述文件保持一致,第三条记录应该是GBP->USD=2,而不是3。如何处理这个问题?这是一个图形问题吗?是的,这是一个图形问题 如果任何一对货币(A,B)的任何转换路径始终给出相同的汇率,则表是一致的 所以你要找到的是两条不同的路径 假设你有一个连通图(你可以从任何东西转换成任何东西,可能通过某种中间货币)。您可以选择任何起始货币,然后像通过DepthFirstSearch或BroadthFirstSearch那样展开它(这里哪种货币并不重要),然后计算汇率。如果你达到了一种你以前从未见过的货币,储存你得到的汇率,如果你已经达到了,汇率必须是相同的(否则停下来说它不一致) 如果没有连通图,则应确保覆盖了所有货币。您可以使用上面的算法,只要能够找到未到达的货币(使用未到达的货币作为起点),就可以再次启动该算法 需要注意的几点:
- 你有一些隐含的利率。在您的talbe中,印度卢比兑美元的汇率为0.02
- 这些利率是相乘的。确保正确比较浮动(期望有一些小的差异)